0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 51
|
|
1 | |
Обработчик текстовых файлов на Python16.02.2012, 18:07. Показов 8757. Ответов 36
Метки нет (Все метки)
В общем мне нужно создать скрипт, который обрабатывал бы кучу (21 если точнее) текстовых файлов с названиями типа "xxx-000.in" где xxx - постоянно, а 000 - номер, свое для каждого файла, выбирал бы оттуда нужные значения, и записывал бы их правильным образом ( в нужном порядке и с некоторыми преобразованиями) в выходной файл. Я новичек поэтому прошу совета и обьяснения, как это можно реализовать... Особо непонятно мне как начать скрипт - т.е. как прописать с помощью какого-то цикла (я так полагаю) чтобы считывались все файлы имеющие определенные названия описанного выше типа...
Также буду благодарен за совет по поводу можно ли (и не является ли это маразмом) вызвать из пайтоновского скрипта AWK. В частности не понимаю, как обозначить часть имени файла в качестве переменной и запустить цикл по именам файлов.
0
|
16.02.2012, 18:07 | |
Ответы с готовыми решениями:
36
Использование встроенных типов-коллекций и генераторов. Обработка текстовых файлов. Работа с модулями Python Обработчик текстовых файлов Обработчик текстовых файлов Обработчик текстовых файлов |
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 51
|
||||||
21.02.2012, 16:00 [ТС] | 21 | |||||
Спасибо за подробный ответ!
Добавлено через 5 минут А кодировка здесь имеет принципиальную важность или просто так? Я про
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
21.02.2012, 16:04 | 22 |
тебе нужно передавать фунции open именно ту кодировку, в которой у тебя сохранен файл, иначе будет ошибка
0
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 51
|
|
21.02.2012, 16:14 [ТС] | 23 |
Просто блок «encoding», насколько я знаю, необязательный, можно пропускать если нету специфической потребности… Не так? Что я недопонимаю?
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
21.02.2012, 16:15 | 24 |
you_fail_me, да, можно, тогда будет использоваться системная кодировка
1
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 51
|
|||||||||||
23.02.2012, 02:12 [ТС] | 26 | ||||||||||
Новый вопрос: в ходе работы над данным скриптом мне понадобилось написать функцию для решения системы из трех уравнений методом Гаусса, начал писать и столкнулся с непоняткой — в учебнике написано, что элементы списков можно заменять, но вот такой вот цикл у меня почему-то делит не все элементы матрицы на первый элемент их строки, а только первые элементы каждой строки на самих себя:
Добавлено через 1 час 48 минут Заметил также что имея цикл например
0
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 51
|
|||||||||||
24.02.2012, 02:27 [ТС] | 29 | ||||||||||
Ну как написать я представляю, мой вопрос был вообще о циклах — что например в первом отрывке кода выходит так что во втором вложенном цикле не воспринимается переменная і, определенная до него…
А на примере второго отрывка хотел узнать, можно ли, если условия отбора цикла позволяют, в цикле писать подряд всю последовательность действий над элементами массива, или же если нужно совершить какое-то преобразование над массивом, после того как завершится предыдущее преобразование надо начинать новый цикл. Добавлено через 2 часа 4 минуты Написал функцию для метода Гаусса, смотрю — написано все вроде бы правильно, заданы нужные операции, а числа выводит не те( Матрицу к треугольному виду приводит, но коэффициенты почему-то другие (не сходится с тем что сам на бумажке посчитал). Подскажите, пожалуйста, в чем косяк.
К треугольному виду приводится путем элементарных преобразований: вычитаем из второй строки первую, умноженную на (а21/а11), вычитаем из третьей строки первую, умноженную на (а31/а11), затем после этого вычитаем из третьей строки вторую, умноженную на(а32/а22). Добавлено через 2 часа 20 минут Увидел закономерность — обрабатываются почему-то только первые значения в строке матрицы, т.е приведенная функция в таком ее виде с приведенными начальными условиями возвращает следующую матрицу:
0
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 51
|
|
24.02.2012, 15:27 [ТС] | 31 |
А можете для понимания объяснить, почему нужно прибегать к кортежам, почему со списками не работает?
0
|
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
|
|
25.02.2012, 03:47 | 32 |
Со списками - работает . Кортеж выбран потому, что нет необходимости изменять какой либо элемент строки, строка заменяется новым объектом. Кортеж - объект не изменяемый, соответственно выделение ресурсов для него происходит несколько быстрее чем выделение ресурсов для списка, т.е. в данном конкретном случае использование кортежа можете считать некоего рода оптимизацией.
Код, который я привел - для третьего питона. Во второй ветке функция map возвращает список, а не генератор, поэтому во второй ветке вызов функции tuple избыточен и будет замедлять выполнение.
0
|
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
|
|
25.02.2012, 14:29 | 34 |
Ну Вы же наверняка видели исходный файл - там не важна кодировка, кодировка системы по умолчанию... в любой системе... сбоев не будет
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
26.02.2012, 09:48 | 35 |
вообще, система может не иметь решений, может иметь одно решение или иметь множество решений
кодировка нужна, чтобы не было ситуации, когда файл может неправильно раскодироваться (даже исключения не возникнет) то, что там цифры сейчас, ещё не значит, что они там будут всегда
0
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 51
|
|
27.02.2012, 19:13 [ТС] | 36 |
Подскажите пожалуйста лаконичный и удобный метод вывода списка — есть список чисел, допустим, 3 строки 9 столбцов, его нужно в таком виде и вывести но отформатировав каждое число в экспоненциальную форму с шестью знаками после запятой. Не могу никак придумать это хорошо и лаконично сделать, циклом каким-нибудь, чтобы не составлять вручную индивидуально каждую строку и потом подряд их печатать.
0
|
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
|
||||||
28.02.2012, 02:38 | 37 | |||||
1
|
28.02.2012, 02:38 | |
28.02.2012, 02:38 | |
Помогаю со студенческими работами здесь
37
Написать программу-обработчик текстовых файлов Программа-обработчик текстовых файлов, определяющая сумму ASCII-кодов символов в файле Написать обработчик текстовых файлов, что создает текстовый файл в который слова будут написаны наоборот Написать программу - обработчик текстовых файлов, что бы создавала текстовый файл, в котором текст выравнивается за правым краем на заданную ширину си Использование встроенных типов-коллекций и генераторов. Обработка текстовых файлов. Работа с модулями Python Создание программы с использованием текстовых файлов и файлов записи Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |