У меня есть следующий код, и я просто хочу, чтобы он записывал список в файл. Он делает это, но с пустой строкой каждый раз, что вызывает проблемы с каждой итерацией!Запись списка в файл без новой строки Python
with open("films.txt", mode='r') as f:
allfilms=[]
reader = csv.reader(f)
for row in reader:
#create a list again which reads in and stores all films in the file
allfilms.append(row)
print(allfilms)
with open("films.txt","w") as f:
writer=csv.writer(f)
writer.writerows(allfilms)
Выход: 0, жанр, название, рейтинг, Любит
1,Sci-Fi,Out of the Silent Planet, PG, 0
2,Sci-Fi,Solaris, PG,0
3,Sci-Fi,Star Trek, PG, 0
4,Sci-Fi,Cosmos, PG, 0
Как уже упоминалось, я не хочу пустую строку при сохранении списка. Кроме того, меня бы интересовали более элегантные или лучшие способы сделать то же самое. Я хочу, чтобы файл был READ в списке, а затем записывался обратно в файл ТОЧНО то же самое, с точки зрения форматирования, как то, что было сохранено в файле.
Заранее спасибо
попробовать с помощью 'allfilms.append (строку.strip ('\ n') ' – davedwards
Возможный дубликат [Suppress linebreak on file.write] (http://stackoverflow.com/questions/1826400/suppress-linebreak-on-file-write) – MaLiN2223
Какая версия Python вы с помощью? В Python 2 модуль CSV ожидает, что файлы будут открыты в двоичном режиме. В Python 3 вам нужно, чтобы выходной файл был открыт с параметром 'newline =" "', чтобы он работал правильно. – Blckknght