2014-04-24 2 views
-2
print ('test.csv') 

# This is where all data will be place into CSV format 
import csv 
with open('test.csv', 'wb') as fp: 
#csv = csv.DictWriter(fp, ['f1', 'f2']) 
test_file = 'test.csv' 
csvfile = 'test.csv' 
csvfile = csv.DictReader(open (test_file, 'rb'), delimiter= ',', quotechar='"') 
fieldnames = ['Somefield'] 
test_file = open ('test.csv','wb') 
csvwriter = csv.DictWriter(test_file, delimiter=',', fieldnames=fieldnames) 
csvwriter.writerow(dict ((fp, fp) for fp in fieldnames)) 
for row in test_file: 
csvwriter.writerow(row) 
test_file.close() 
for row in row: csv.writerow (row) 

이 코드를 실행하면 IOError가 발생합니다 : "test_file의 행"에서 읽지 않은 파일이 여기에서 무엇입니까? 위에 열어 본 것 같아요.내 파일이 인쇄되지 않는 이유는 무엇입니까? 계속 I/O 오류가 발생합니다.

+2

들여 쓰기를 수정할 수 있습니까? –

+0

상대 경로로 시도하십시오. – vamosrafa

+1

부르 한이 말한 바. 적절한 들여 쓰기가 없다면, 문제에있어 결정적 인 'with'블록의 범위를 말할 수 없습니다. –

답변

0

파일의 시작 부분에서 쓰기 모드에서 test.csv을 열었습니다. 이것은 거기에 쓰여진 것이 무엇이든 지울 것입니다. 또한 이진 형식으로 열려고하지만 csv 인 경우 텍스트 형식으로 열려고합니다.

다른 문제 :

with open('test.csv', 'wb') as fp: 

fp

프로그램에서 다른 곳에서는 사용되지 않습니다. 파일을 깨끗이 지우는 것 외에는 쓸모가 없습니다.

csvfile = 'test.csv' 
csvfile = csv.DictReader(open (test_file, 'rb'), delimiter= ',', quotechar='"') 

첫 번째 줄은 덮어 쓰기 만하므로 아무 것도하지 않습니다. 다시 빈 파일을 여는 중입니다.

test_file = open ('test.csv','wb') 
csvwriter = csv.DictWriter(test_file, delimiter=',', fieldnames=fieldnames) 

여기에서 동일한 파일을 다시 열 수 있습니다.

for row in row: 
    csv.writerow (row) 

여기서 무엇을 하시겠습니까? 반복자를 매우 혼란스럽게 덮어 쓰고 있습니다. 아마도 for row in test_file과 같은 것을하고 싶을 것입니다.

또한 writerow는 DictWriter의 방법이며 csv가 아닙니다. 그러면 예외가 발생합니다.

+1

CSV 파일은 Python 2에서 바이너리 형식으로 열어야합니다 (OP가 사용하지 않을 수도 있음, 코드에서'print()'호출로 판단). 줄 바꿈이 포함 된 필드를 수정하지 않습니다. 파이썬 3에서는 newline = ''매개 변수를 사용해야합니다. –

+0

나는 당신이 말한 것을 만날 수 있도록 코드를 수정했다. 지금은 (','구분 =을 test_file, fieldName에 = fieldName에) csvwriter = csv.DictWriter납니다 __init__ self.writer = 작가 (F, 방언, * 인수, ** kwds) 형식 오류에 : 인수 1에는 "쓰기"메소드가 있어야합니다. –

+0

무엇이'test_file'입니까? 그것은 열린 파일이어야합니다. 설명을 위해 문서 예제를 읽는 것이 좋습니다. https://docs.python.org/2/library/csv.html – Davidmh

0

다른 파일 핸들에서 동일한 파일을 두 번 열었습니다. 이것은 작동하지 않습니다. 출력을 위해 다른 파일 이름을 사용하거나 작성하기 전에 읽고 닫은 다음 다시여십시오.

관련 문제