【问题标题】:Separating CSV file which contains 3 spaces as delimiter分隔包含 3 个空格作为分隔符的 CSV 文件
【发布时间】:2018-11-20 10:45:33
【问题描述】:

我正在处理一个损坏的 CSV 文件,它使用 3 个空格作为分隔符。有没有办法用python3将它分隔为制表符? 目前我的代码如下所示:

import csv
with open ("example.csv", "r") as csv_file:
    csv_reader = csv.reader(csv_file, delimiter ="\   ")

    with open("new_example.csv","w") as new_file:
        csv_writer = csv.writer(new_file, delimiter="\t")

        for line in csv_reader:
        csv_writer.writerow(line)

这样我得到的错误是只能用 1 个字符来分隔它。另一个问题是,csv 文件中的单元格通常包含 1 个空格(不应分隔)。

【问题讨论】:

标签: python python-3.x import-from-csv


【解决方案1】:

好吧,如果pandas 对您来说可行,那么这应该可以解决您的问题:

import pandas as pd

inFile = pd.read_csv('example.csv', sep='\s+')
inFile.to_csv('new_example.csv', sep='\t')

【讨论】:

    【解决方案2】:

    正如错误所说,csv 只能分隔一个字符,在这里可能没有用。只需使用.replace 将三个空格的序列转换为制表符。

    with (open("example", "r") as csv_file,
          open("new_example.csv", "w") as new_file):
        for line in csv_file:
            new_file.write(line.replace('   ', '\t'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      相关资源
      最近更新 更多