【问题标题】:write and read csv file python写入和读取csv文件python
【发布时间】:2017-08-11 08:35:03
【问题描述】:

我有一个 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")

util 现在一切似乎都很好,但是当我尝试使用此代码打开 file.csv 时:

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

我面对这个:

进程以退出代码 -1073740940 (0xC0000374) 结束

无需进入下一行。

另外,当我尝试使用 ISO-8859-1 编码打开它时,没关系;但是当我尝试打印 .csv 的头部时,它只会打印一些问号('?'

有人知道怎么回事吗?

【问题讨论】:

  • 可能是编码问题。源文件中有特殊字符吗?
  • 因为它是一些新闻的文本,所以一切都可能在其中。也不是英文的。
  • 是什么语言?
  • 它是波斯语

标签: python pandas csv unicode


【解决方案1】:

在 CSV 文件中写波斯语让我发疯了。最后这个对我有用:

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

【讨论】:

    【解决方案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")
    

    带有一个包含两行示例波斯文本的 txt 文件。它在 Python 3 中运行没有任何问题,生成了这个 csv:

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

    您能否提供有关文本属性和您在数据帧处理中执行的操作的更多详细信息,或者确定读取中断的行?您可能会在途中产生一些无效字符。

    【讨论】:

    • 该过程包含对每行读取数据的简单拆分。该文件也约为 1.5 Gig,我看不出其中的特殊字符是什么。有什么方法可以忽略基于特殊字符或前面一致的其他编码的错误?
    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多