在用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)