读取带有特殊换行符的csv文件

时间:2016-03-19 19:30:21

标签: python csv pandas

我必须阅读一个CSV文件,其中有一些有趣的换行符进入数据帧。这是最有效的方法吗?

with open(fileToRead,'r') as file:
     filedata = file.read().replace("#@#@#", "\n")
     file.close()
df = pandas.read_csv(filepath_or_buffer=StringIO(filedata), sep='~')

代码有效,但我不确定这是最好的方法。

是否可以在不将文件存储到filedata变量的情况下执行此操作?

1 个答案:

答案 0 :(得分:0)

您也可以尝试使用以下代码,该代码将使用更“正常”的换行符复制数据。

with open('{}.clean'.format(fileToRead), 'w') as out_file:
    with open(fileToRead, 'r') as in_file:
         in_file_data = in_file.read().replace('#@#@#', '\n')
         out_file.write(in_file_data)

df = pandas.read_csv('{}.clean'.format(fileToRead), sep='~')

但实际上,您目前使用的方法很好。

此外,正如@jonrsharpe所示,当您使用with语句打开文件时,不需要显式关闭文件。一旦代码离开with语句的范围,文件将自动关闭。