Я пытаюсь открыть файл CSV после того, как создаю его с помощью python. Моя цель - иметь возможность прочитать файл обратно без редактирования, и моя проблема в том, что я не могу заставить работать разделитель. Мой файл создается с помощью Python CSV Writer, а затем я пытаюсь использовать ридер для чтения данных из файла. Вот где я застреваю. Мой CSV-файл сохраняется в том же месте, где и моя программа на Python, поэтому я знаю, что это не проблема доступа. Мой файл создан с использованием специального разделителя символов. Я использую точки с запятой ;
, поскольку необработанные данные уже содержат запятые ,
, двоеточия ;
, знаки плюс +
, амперсанды &
, точки .
и, возможно, подчеркивание _
и / или тире -
. Это код, который я использую для чтения моего CSV-файла:
with open('Cool.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=';', dialect=csv.excel_tab)
for row in csv_reader:
print row[0]
csv_file.close()
Теперь это мой CSV-файл (Cool.csv
):
"Sat, 20 Apr 2019 00:17:05 +0000;Need to go to store;Eggs & Milk are needed ;Store: Grocery;Full Name: Safeway;Email: safewayiscool@gmail.com;Safeway <safewayiscool@gmail.com>, ;"
"Tue, 5 Mar 2019 05:54:24 +0000;Need to buy ham;Green eggs and Ham are needed for dinner ;Username: Dr.Seuss;Full Name: Theodor Seuss Geisel;Email: greeneggs+ham@seuss.com;"
Таким образом, я ожидаю, что мой вывод будет следующим при запуске кода:
Sat, 20 Apr 2019 00:17:05 +0000
Tue, 5 Mar 2019 05:54:24 +0000
Я либо получаю нулевую ошибку, либо она выведет всю строку. Как я могу получить его для разделения данных на то, что я хочу, чтобы определить столбцы, разделенные ;
?
Я не уверен, что проблема в том, что я пытаюсь использовать точку с запятой или это что-то еще. Если это просто точка с запятой, я мог бы изменить ее при необходимости, но многие другие символы уже взяты во входящих данных.
Также, пожалуйста, не предлагайте мне просто прочитать его из исходного файла. Это массивный файл, в котором есть много других данных, и я хочу его обрезать перед тем, как выполнять с этой второй программой.
UPDATE:
Вот код, который создает файл:
with open('Cool.csv', 'w') as csvFile:
writer = csv.writer(csvFile, delimiter=';')
for m in file:
message = m['msg']
message2 = message.replace('\r\n\r\n', ';')
message3 = message2.replace('\r\n', ';')
entry = m['date'] + ";" + m['subject'] + ";" + message3
list = []
list.append(entry)
writer.writerow(list)
csvFile.close()