писать и читать файл csv python

У меня есть файл text, содержащий слова с неанглийскими алфавитами, и я хочу открыть его, выполнить некоторую предварительную обработку и, наконец, сохранить его как файл csv. и использовать его где-то еще.

код для чтения и сохранения файла:

with open('file.txt', encoding="utf-8") as f:
    train = f.read().splitlines() 

затем создайте кадр данных и код для его хранения:

df.to_csv('file.csv', index=True, encoding="utf-8")

до сих пор все кажется в порядке, но когда я пытаюсь открыть файл .csv с помощью этого кода:

train = pd.read_csv('file.csv', encoding="utf-8")

Я сталкиваюсь с этим:

Process finished with exit code -1073740940 (0xC0000374)

не переходя на следующие строки.

также, когда я пытаюсь открыть его с кодировкой ISO-8859-1, все в порядке; но когда я пытаюсь напечатать заголовок этого CSV, он просто печатает несколько вопросительных знаков ('?')

кто-нибудь знает, что происходит не так?

любая помощь будет оценена.


person Ehsan Mehralian    schedule 11.08.2017    source источник
comment
Возможно проблема в кодировке. Какие-нибудь специальные символы в вашем исходном файле?   -  person Igle    schedule 11.08.2017
comment
так как это текст какой-то новости, то в нем может быть все что угодно. также это не на английском языке.   -  person Ehsan Mehralian    schedule 11.08.2017
comment
Какой это язык?   -  person Igle    schedule 11.08.2017
comment
это на персидском   -  person Ehsan Mehralian    schedule 11.08.2017


Ответы (2)


Я попытался воспроизвести его с помощью этого кода:

import pandas as pd

with open('persian.txt', encoding="utf-8") as f:
    train = f.read().splitlines() 
    df = pd.DataFrame({'text': train})
    df.to_csv('file.csv', index=True, encoding="utf-8")
    train = pd.read_csv('file.csv', encoding="utf-8")

с текстовым файлом, содержащим две строки образца персидского текста. Он работал без проблем в Python 3, создавая этот csv:

    text
0   همهٔ افراد بشر آزاد به دنیا می‌آیند و حیثیت و حقوق شان با هم برابر است
1   همه اندیشه و وجدان دارند و باید در برابر یکدیگر با روح برادری رفتار کنند. 

Можете ли вы предоставить более подробную информацию о свойствах текста и операциях, которые вы выполняли при обработке фрейма данных, или определить строку, где чтение прерывается? Возможно, вы создаете некоторые недопустимые символы по пути.

person daneeq    schedule 11.08.2017
comment
процесс содержит простое разбиение на каждую строку прочитанных данных. также файл около 1,5 гига, и я не вижу, что это за специальный символ в нем. Есть ли способ игнорировать ошибки, основанные на специальных символах или другой кодировке, которая соответствует им? - person Ehsan Mehralian; 11.08.2017

Я сходил с ума, когда писал персидский в файле CSV. Наконец, это сработало для меня:

data.to_csv (r'hi.csv', encoding='utf-8-sig')
person ghazale    schedule 23.04.2021