У меня есть файл с именем Some.csv, который имеет поле (столбец), который имеет значение, какCSV читатель различные выходы на Ubuntu и Windows - Python
1000, 2000, .... 39000.
Я хотел только файлы с 39000, поэтому я написал следующий сценарий питона
import os
import csv
with open('Somenew.csv', 'w') as fw:
writr = csv.writer(fw, delimiter=',')
with open('Some.csv','r') as fr:
reader = csv.reader(fr, delimiter = ',')
for row in reader:
if row[2] == '39000': writr.writerow(row)
Теперь, когда это выполняется на Windows, она Somenew.csv выглядит следующим образом
ххого хххй, 39000, хххй ххое
гггг, гггг, 39000, гггг, гггг
Но при выполнении на Linux (Ubuntu 14.04LTS) есть не добавлена никакая дополнительная новая строка.
Есть ли причина для этого? Возможно, это из-за компилятора?
Это потому, что Windows использует '\ r \ n' для окончаний строк в текстовых файлах вместо' \ n'. Простое исправление заключается в том, чтобы читать и записывать CSV-файлы в виде двоичных файлов, но есть и другие варианты в Python 3. Какую версию Python вы используете? –
http://stackoverflow.com/questions/1170214/pythons-csv-writer-produces-wrong-line-terminator/1170297#1170297 – LearnerEarner
2.7.something (возможно, 10). Спасибо, что имеет смысл. Так измените 'r' и 'w' на 'rb' и 'wb'? – Sood