如何阅读这种特定的文件格式?

时间:2016-11-08 02:47:48

标签: python file

我在csv文件中有以下文字:

b'DataMart\n\nDate/Time Generated,11/7/16 8:54 PM\nReport Time Zone,America/New_York\nAccount ID,8967\nDate Range,10/8/16 - 11/6/16\n\nReport Fields\nSite (DCM),Creative\nGlobest.com,2016-08_CB_018_1040x320_Globe St_16_PropertyFilter\nGlobest.com,2016-08_CB_018_1040x320_Globe St_16_PropertyFilter'

本文件中基本上有多个换行符,而不是一个大字符串,因此您可以按如下方式拍摄相同的文字

DataMart
Date/Time Generated,11/7/16 8:54 PM
Report Time Zone,America/New_York
Account ID,8967
Date Range,10/8/16 - 11/6/16
Report Fields
Site (DCM),Creative
Globest.com,2016-08_CB_018_1040x320_Globe St_16_PropertyFilter
Globest.com,2016-08_CB_018_1040x320_Globe St_16_PropertyFilter

我需要抓住最后两行,这基本上就是数据。我尝试了for循环:

with open('file.csv','r') as f:
    for line in f:
        print(line)

而是使用\n再次打印整行。

2 个答案:

答案 0 :(得分:0)

只需阅读文件并获取最后两行:

my_file = file("/path/to/file").read()
print(my_file.splitlines()[-2:])

[-2:]被称为切片:它创建一个切片,从第二个元素开始到最后一个元素,一直到最后。

答案 1 :(得分:0)

好吧,经过一段时间的努力,我发现我需要将文件的解码从二进制更改为'utf-8'然后我可以应用拆分功能。问题是拆分函数不适用于二进制文件。

这是现在似乎对我有用的实际代码:

    with open('BinaryFile.csv','rb') as f1:
        data=f1.read()
        text=data.decode('utf-8')
        with open('TextFile.csv', 'w') as f2:
            f2.write(text)

    with open('TextFile.csv','r') as f3:
        for line in f3:
            print(line.split('\\n')[9:])

感谢您的帮助