Найти - Пользователи
Полная версия: Помогите с программой обработки текста
Начало » Python для новичков » Помогите с программой обработки текста
1 2
maxo127
Есть текстовый файл с однотипными строками:

A1,A2,A3,A4
B1,B2,B3,B4
C1,C2,C3,C4
и т. д.

Строк много - десятки тысяч.

Нужна программа, которая из этого текста сделал бы следующий:

“Some text ('A1','','A2','','A3','','A4')”;
“Some text ('B1','','B2','','B3','','B4')”;
“Some text ('C1','','C2','','C3','','C4')”;

и т. д.

Нужно срочно, потому прошу о помощи тае не вовремя.

Кстати, Всем С Новым Годом!
ZZZ
Я буду первым, кто ответит здесь на вопрос!.. Хотя все нормальные люди пьют…

out_file = open('out.txt', 'wb')
for line in (line.strip() for line in open('in.txt', 'rb')):
out_file.write('"Some text(\'%s\')"\n') % "','','".join(line.split(','))
out_file.close()
Только не спрашивай меня, как оно работает… И это, я не проверял, но вроде правильно.

P.S. Пить надо меньше, а спать больше! Всех с наступившем на нас годом!
maxo127
ZZZ
Я буду первым, кто ответит здесь на вопрос!..
Не знаю насколько хотел зла, но совершил точно благо :). С работой разберусь надеюсь.

Спосибы и гигабайты счастья в новом году! Отдельно спасибо за комплимент (все нормальные люди пьют…) :)
maxo127
Вот что питон пишет:

Traceback (most recent call last):
File “E:/Program Files/python/balance.py”, line 1, in <module>
out_file = open('E:\Program Files\python\mmm\base_upload.txt', ‘wb’)
IOError: No such file or directory: ‘E:\\Program Files\\python\\mmm\x08ase_upload.txt’

т. е. ищет файл base_upload.txt, а не находит x08ase_upload.txt

почему он превращает “b” в “x08”?
и двойные слеши - так и должно?

Пробовал с заранее созданным файлом base_upload.txt, и без него.
Если называю по -другому, напр ase_upload.txt, название не меняется, но сообщение такое-же.
Входной test.txt тоже существует точно.
При запуске создается пустой base_upload.txt. Также в том случае, если там уже был файл с этим названием (и каким-то содержанием).

сам текст программы:

out_file = open('E:\Program Files\python\mmm\base_upload.txt', ‘wb’)
for line in (line.strip() for line in open('E:\Program Files\python\mmm\test.txt', ‘rb’)):
out_file.write('“Some text(\'%s\')”\n') % “','','”.join(line.split(','))
out_file.close()
ZZZ
maxo127
out_file = open('E:\Program Files\python\mmm\base_upload.txt', ‘wb’)
for line in (line.strip() for line in open('E:\Program Files\python\mmm\test.txt', ‘rb’)):
out_file.write('“Some text(\'%s\')”\n') % “','','”.join(line.split(','))
out_file.close()
Ну правильно! Обратный слеш (\), это эскейп символ. Попробуй удвоить их.

out_file = open('E:\\Program Files\\python\\mmm\\base_upload.txt', 'wb')
for line in (line.strip() for line in open('E:\\Program Files\\python\\mmm\\test.txt', 'rb')):
out_file.write('"Some text(\'%s\')"\n') % "','','".join(line.split(','))
out_file.close()
ZZZ
Или поставить ‘r’ перед строкой, чтобы сделать её “сырой”:
r'E:\Program Files\python\mmm\base_upload.txt'
ZZZ
А вообще, это только в Новый Год я такой добрый… И то только я… Очень хотелось бы, чтобы вы почитали какой-нить учебник по питону, ибо это очень этементарные вопросы.
maxo127
ZZZ
Очень хотелось бы, чтобы вы почитали какой-нить учебник по питону, ибо это очень этементарные вопросы.
И мне хотелось бы, вот на интуит.ру прекрасный материал лежит, но как Вы думаете - когда человек в разгар нового года этими занимается, потому что программист надяпал что-то на С++ и пропал, а прога не работает, вернее работает но бесконечно и без толку, а базу надо обновить, а ее не то чтоб обновить пока к разуму привести надо, антивира не купили и чтоб куда-то зайти у вируса разрешения просить надо, и сервер чо-то поскрипывает, и хостинг барахлит, аууууууууууууууууууууууууууууууууууууууууу

Где тут учебники читать :(

Хорошо что все еще все пьяны :)
maxo127
Нет, не получается

Немножко повозился, на экран вывщдит правильно:

out_file = open('E:\\Program Files\\python\\mmm\\base_upload.txt', ‘wb’)
for line in (line.strip() for line in open('E:\\Program Files\\python\\mmm\\test.txt', ‘rb’)):
print ('“INSERT (\'%s\')”;\n') % “','”.join(line.split(','))

результат:

“INSERT ('C1','C2','C3','C4')”;

А если вместо print вставить out_file.write, тогда ошибка:

Traceback (most recent call last):
File “E:/Program Files/python/mmm/make_base.py”, line 3, in <module>
out_file.write('“INSERT INTO balance(id,pir_n,saxeli,gvari,misamarti,davalianeba,tarigi) VALUES (\'%s\')”;\n') % “','”.join(line.split(','))
TypeError: unsupported operand type(s) for %: ‘NoneType’ and ‘str’
maxo127
И как назло во всей сети нет обяснение ошибли %; есть for +, =, /, * и хз что, а про % - ни заикания :(
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB