天天看點

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)