2013-05-31 97 views
3

我現在正在使用csv包,每當我寫入新的csv文件並使用excel打開時,我會在每兩行之間找到一個空行。在Python中使用編寫器之後的行之間的空白空間

filereader = csv.reader(open("tests.csv", "r"), delimiter=",") 
filewriter = csv.writer(open("test_step1.csv", "w"), delimiter=",") 
#Delete header 
for row in filereader: 
    if row[0].isdigit(): 
     filewriter.writerow(row) 

enter image description here

+1

在'wb'模式下打開'writer'文件。這是因爲我嘗試了'\ r \ n' – karthikr

+0

,但又遇到了另一個錯誤:''str'不支持以二進制模式打開緩衝接口「 – user1998777

+0

」。 'rb'和'wb'您可以讀取一個字符串,並將二進制數據寫入相同的數據集。 – karthikr

回答

2

你需要打開WB模式嘗試的文件:

import csv 

filereader = csv.reader(open("tests.csv", "r"), delimiter=",") 
filewriter = csv.writer(open("test_step1.csv", "wb"), delimiter=",", newline="") 
#Delete header 
for row in filereader: 
    if row[0].isdigit(): 
     filewriter.writerow(row) 

的csv.writer直接寫入\ r \ n到文件中。

如果你不binary mode打開該文件,它會寫\ r \ r \ n,因爲在Windows文本模式將轉化每個\ n\ r \ n

編輯:

爲Python 3不得不csv.writer添加newline=""按照this answer

+0

它給我提供了在最後一行代碼中「'str'不支持緩衝區接口」的錯誤。 – user1998777

+0

什麼版本的python?你在窗戶上嗎? – Noelkd

+0

我認爲這是3.3.2 – user1998777

-1

我使用Python 3.6,似乎

csv.writer(open("test_step1.csv", "wb"), delimiter=",", newline="")

是不正確的。 newline=""應添加在open()子句中。

+0

這並不真正回答這個問題。如果您有不同的問題,可以通過單擊[提問](https://stackoverflow.com/questions/ask)來提問。您可以[添加賞金](https://stackoverflow.com/help/privileges/set-bounties)在您擁有足夠的[聲譽](https://stackoverflow.com/help/)後吸引更多關注此問題什麼聲譽)。 - [來自評論](/ review/low-quality-posts/18094681) –

相關問題