2016-11-22 69 views
-1
import csv  
in_txt = csv.reader(open(post.text, "rb"), delimiter = '\t')  
out_csv = csv.writer("C:\Users\sptechsoft\Documents\source3.csv", 'wb')  
out_csv.writerows(in_txt) 
上面的代碼執行我得到IO錯誤,我需要在CSV保存在單獨的文件夾時

Python代碼刮掉數據CSV

Output shown as IO error

+0

post.text是我的文件,數據顯示爲IO錯誤,並且數據應該以CSV格式存儲爲單獨的文件夾 –

+0

將'open(post.text,「rb」)''更改爲''post.text「' 錯誤是不言自明的 –

+1

'post'是一個變量。 'post.text'是一個屬性。 ''post.text「'是一個**文件名** –

回答

0

你不需要傳遞之前打開文件它給csvreader。 您可以直接傳遞到csvreader文件,它會工作

import csv  
in_txt = csv.reader("post.text", "rb", delimiter = '\t')  
out_csv = csv.writer("C:\Users\sptechsoft\Documents\source3.csv", 'wb')  
out_csv.writerows(in_txt) 
+0

我執行同樣的事情,但說未知的方言 –

0

嘗試以下操作:

import csv  

with open(post.text, "rb") as f_input, open(r"C:\Users\sptechsoft\Documents\source3.csv", "wb") as f_output: 
    in_csv = csv.reader(f_input, delimiter='\t')  
    out_csv = csv.writer(f_output)  
    out_csv.writerows(in_csv) 

csv.reader()csv.writer()需求無論是列表或一個文件對象。它無法爲您打開文件。通過使用with它確保文件在之後自動正確關閉。

另外,不要忘記用r作爲路徑字符串的前綴來禁用任何由於反斜槓而導致的字符串轉義。

+0

相同的錯誤數據來作爲IO錯誤,但不存儲在單獨的CSV –

+0

嘗試'print post.text',它需要是一個文件名,最好是完整的路徑。 –

+0

請注意,您的文件名不得包含額外的引號,即''test.csv「'無效。如果是這種情況,請用'post_text.strip('「\'')'替換'post.text'。如果確實有引號,將會得到一個IOError。 –