Python 读取csv时的编码问题-行以\n\x00结尾

Python 读取csv时的编码问题-行以\n\x00结尾,python,pandas,csv,encoding,ascii,Python,Pandas,Csv,Encoding,Ascii,我在尝试使用pandas读取csv文件时遇到一些问题,因为只有第一行正确解析了日期(下一行是NaN或NaT。我尝试直接打开该文件以查看其外观: f = open('20191122.csv', "r", encoding='ascii') f.read(300) 前300个字符显示行以\n\x00结尾: '20191122 21:29,1,59,-999,42,-999.9,-999.9,37,34,1,0.0,0.4,0.4,0.4,0,0,0,0,0,10.1,9.6,0.0,0,33.7

我在尝试使用pandas读取csv文件时遇到一些问题,因为只有第一行正确解析了日期(下一行是
NaN
NaT
。我尝试直接打开该文件以查看其外观:

f = open('20191122.csv', "r", encoding='ascii')
f.read(300)
前300个字符显示行以
\n\x00
结尾:

'20191122 21:29,1,59,-999,42,-999.9,-999.9,37,34,1,0.0,0.4,0.4,0.4,0,0,0,0,0,10.1,9.6,0.0,0,33.7,36.0,75.4,29.6,14.0,59.5,32.7,6.7,6.8,0.2,-\n\x0020191122 21:30,1,59,-999,42,-999.9,-999.9,37,34,1,0.0,0.4,0.4,0.4,0,0,0,0,0,10.0,9.8,0.0,0,33.4,35.9,74.9,29.0,13.9,59.6,32.7,6.6,6.6,0.2,-\n\x0020191122 21:30,1,5'
逐行拉动时,第一行可以:

data = f.readlines()
data[0]
'20191122 21:29,1,59,-999,42,-999.9,-999.9,37,34,1,0.0,0.4,0.4,0.4,0,0,0,0,0,10.1,9.6,0.0,0,33.7,36.0,75.4,29.6,14.0,59.5,32.7,6.7,6.8,0.2,-\n'
但其余行以
\x00
开头,因此无法解析日期:

data[1]
'\x0020191122 21:30,1,59,-999,42,-999.9,-999.9,37,34,1,0.0,0.4,0.4,0.4,0,0,0,0,0,10.0,9.8,0.0,0,33.4,35.9,74.9,29.0,13.9,59.6,32.7,6.6,6.6,0.2,-\n'

因此,问题似乎与编码有关?我在csv文件上尝试了,得到了相同的结果:
ascii信心1.0
,但我似乎找不到如何处理
\x00

以UTF-16结尾的行是“\n\x00”。 f、 readlines()将\n作为行结尾

因此,请尝试:

data = open(...).read()
data.encode().decode("utf-16")

你可以试着替换它

if '\x00' in open(tmp_file_name).read():
    print("you have null bytes in your input file")
    fi = open(tmp_file_name, 'r')
    tmp_file_csv_data = fi.read()
    fi.close()
    fo = open(tmp_file_name, 'w')
    fo.write(tmp_file_csv_data.replace('\x00',''))
    enter code herefo.close()

不起作用,得到以下错误度量值:''AttributeError:'str'对象没有属性'decode'''抱歉,这也不起作用..只是渲染了很多垃圾:'〲㤱ㄱ㈲㈠㨱㤲ㄬ㔬ⰹ㤭㤹㐬ⰲ㤭㤹㤮\u2d2c㤹⸹ⰹ㜳㌬ⰴⰱ⸰ⰰ⸰ⰴ⸰ⰴ⸰ⰴⰰⰰⰰⰰⰰ〱ㄮ㤬㘮〮〬〬㌬⸳ⰷ㘳〮㜬⸵ⰴ㤲㘮ㄬ⸴ⰰ㤵㔮㌬⸲ⰷ⸶ⰷ⸶ⰸ⸰ⰲਭ㈀\u3130ㄹ㈱′ㄲ㌺ⰰⰱ㤵\u2d2c㤹ⰹ㈴\u2d2c㤹⸹ⰹ㤭㤹㤮㌬ⰷ㐳ㄬ〮〬〬㐮〬㐮〬㐮〬〬〬〬〬ㄬ⸰ⰰ⸹ⰸ⸰ⰰⰰ㌳㐮㌬⸵ⰹ㐷㤮㈬⸹ⰰ㌱㤮㔬⸹ⰶ㈳㜮㘬㘮㘬㘮〬㈮\u2d2c\n〲㤱ㄱ㈲㈠㨱〳ㄬ㔬ⰹ㤭㤹㐬ⰲ㤭㤹㤮\u2d2c㤹⸹ⰹ㜳㌬ⰴⰱ⸰ⰰ⸰ⰴ⸰ⰴ⸰ⰴⰰⰰⰰⰰⰰ⸹ⰸ〱〮〮〬〬㌬⸳ⰰ㔳㤮㜬⸴ⰴ㠲㐮ㄬ⸳ⰵ㤵㐮㌬⸲ⰷ⸶ⰵ⸶ⰶ⸰ⰲਭ㈀\u3130ㄹ㈱′ㄲ㌺ⰱⰱ㤵\u2d2c㤹ⰹ㈴\u2d2c㤹⸹ⰹ㤭㤹㤮㌬ⰷ㐳ㄬ〮〬〬㐮〬㐮〬㐮〬〬〬〬〬㤬㜮ㄬ⸰ⰱ⸰ⰰⰰ㈳㜮㌬⸵ⰸ㐷〮㈬⸷ⰸ