天天看点

txt转csv文件,隔行出现空行

在用csv.writer写入文件的时候发现中间有多余的空行。

最早打开方式只是‘w’,会出现多余的空行,网上建议使用binary形式‘wb’打开可以解决问题:python正常写入文件的时候,每行的结束默认添加'n’,即0x0D,而writerow命令的结束会再增加一个0x0D0A,因此对于windows系统来说,就是两行,而采用’ b'参数,用二进制进行文件写入,系统默认是不添加0x0D的。

不过只能在python2下运行,python3报错:TypeError: a bytes-like object is required, not 'str'

该问题解决方法:在open()内增加一个参数newline='' 即可

with open('data/Gowalla_edges.csv', 'w',newline='') as csvfile:
    spamwriter = csv.writer(csvfile, dialect='excel')
    # 读要转换的txt文件,文件每行各词间以@@@字符分隔
    with open('data/Gowalla_edges.txt', 'r') as filein:
        for line in filein:
            print(line)
            line_list = line.strip('\n').split('\t')
            spamwriter.writerow(line_list)