내 파이썬 프로그램은 여러 csv 파일을 반복하고 읽어 들여 파일의 특정 열을 다른 CSV 파일에 작성합니다. 프로그램이 실행되는 동안 올바른 방식으로 작성된 파일을 볼 수 있지만 일단 프로그램이 완료되면 방금 작성한 모든 파일이 비게됩니다.파이썬, csv 작가 뒤의 빈 파일 ..
다른 모든 유사한 스레드에 대한 해결책은 제대로 작성하는 파일을 닫는 것 같지만 잘못된 것은 무엇인지 파악하는 것 같습니다. 누군가?
import os
import csv
def ensure_dir(f):
d = os.path.dirname(f)
if not os.path.exists(d):
os.makedirs(d)
readpath = os.path.join("d:\\", "project")
savepath=os.path.join("d:\\", "save")
ensure_dir(savepath)
contents_1=os.listdir(readpath)
for i in contents_1[1:len(contents_1)]:
readpath_2=os.path.join(readpath, i)
if os.path.isdir(readpath_2)== True :
contents_2=os.listdir(readpath_2)
for i in contents_2:
readpath_3=os.path.join(readpath_2, i)
if os.path.isfile(readpath_3)== True :
savefile=savepath + "\\" + i
savefile = open(savefile, 'wb')
writer = csv.writer(savefile, delimiter=';')
readfile=open(readpath_3, 'rb')
reader = csv.reader(readfile, delimiter=';')
try:
for row in reader:
writer.writerow([row[0], row[3]])
except:
print(i)
finally:
savefile.close()
readfile.close()
이러한 문제없이 깨끗한 파일 액세스를 위해서는'try..finally' 또는'with'-Statement를 사용해야합니다. – schlamar
어떤 운영 체제를 사용하고 있습니까? – Martey
Im using windows 7 – Drublic