Добрый вечер,Проблемы с обработкой файлов в Python
Я довольно новыми для Python и в данный момент и на данный момент я борюсь с проблемой, как правильно редактировать файл (.txt или. csv) в python. Я пытаюсь написать небольшую программу, которая будет принимать каждую строку текстового файла, зашифровывать его, а затем перезаписывать файл за строкой и сохранять его. Соответствующая часть моего кода выглядит так:
with open('/home/path/file.csv', 'r+') as csvfile:
for row in csv.reader(csvfile, delimiter='\t'):
y = []
for i in range(0, len(row)):
x = encrypt(row[i], password)
y.append(x)
csvfile.write(''.join(y))
Которая при исполнении ничего не делает. Я играл с кодом немного, иногда он впадает в
TypeError: expected a character buffer object
Функция шифрования возвращает строку, и мой файл состоит из 3-х строк в строку, разделенных на вкладку, как это:
key1 value1 value1'
key2 value2 value2'
key3 value3 value3'
...
Возможно, csv.reader правильно прочитал файл и возвращает один список в строке, а затем возвращает список с зашифрованными фразами. Однако я не могу заставить функцию file.write() фактически перезаписать файл. Кто-нибудь знает, как обойти это? Любая помощь будет принята с благодарностью.
Спасибо,
Энди
Вы можете просто пропускать 'csvfile.seek (0)', который будет сбросить файл курсор в начало файла перед записью (вы хотите, чтобы сделать все ваше чтение, а затем записать все на конец. Делает ли что-нибудь, если вы пишете содержимое в новый файл? –