일련의 기후 데이터 텍스트 파일을 읽고 있는데, 각 파일에는 9000 개의 행이 들어 있으며, 첫 번째 행은 이름, 경도 등과 같은 스테이션 정보입니다. 8에서 끝까지의 선은 기후 데이터를 포함합니다.병렬로 두 개의 CSV 파일에 로깅 (파이썬)
모든 파일을 읽고 "MetLocations.csv"및 "MetData.csv"라는 두 파일을 출력하고 싶습니다. 첫 번째 파일은 모든 파일의 첫 번째 줄 모음으로 구성되며 두 번째 파일은 모든 기후 데이터.
모든 파일을 반복하여 정보를 읽고 이상한 점 이외의 문제없이 인쇄했습니다. 'with'루프를 두 번 만들면 MetLocations.csv 파일이 비어있게됩니다. 반면에 루프별로 루프를 만들면 잘 씁니다! 더 명확하게 보려면 코드를 참조하십시오.
이 내 코드의 일부입니다 : 파일 MetLocations.csv가 비어 동안 위의 코드를 실행의 끝에서
with open('MetLocations.csv','wb+') as locations:
wr_loc = csv.writer(locations, quoting=csv.QUOTE_NONE, quotechar='', delimiter=',', escapechar='\\')
headers = ["St_Id","City","State","Country","Source","WO code","Lat","Long","TimeZone","Alt"]
wr_loc.writerow(headers)
with open('MetData.csv','a+')as met_data:
wr_data = csv.writer(met_data, quoting=csv.QUOTE_NONE, quotechar='', delimiter=',', escapechar='\\',lineterminator='\n')
headers = ["St_ID", "Year", "Month", "Day", "Hour", "Minute", "Data Source and Uncertainty Flags", "Dry Bulb Temperature"]
wr_data.writerow(headers)
for n, f in enumerate(filenames):
print n, f,time.strftime('%Y-%m-%d %H:%M:%S')
full_path = os.path.join(source, f)
with open(full_path, 'r') as input_file:
content = input_file.readlines()
location = [n] + list_elements(content[0])[1:]
wr_loc.writerow(location)
meteo = []
for line in content[8:]:
meteo.append([n] + list_elements(line))
wr_data.writerows(meteo)
, 나는 데이터의 전체 파일을 MetData.csv 발견!
이상한 점은 마지막 4 개의 하단 라인이 주석 처리 된 동일한 코드를 실행하면 MetLocations.csv가 문제없이 채워진다는 것입니다.
추가를 위해 두 개의 순차적 CSV 파일을 열 수 있습니까? 또는 내 코드에서 잘못된 부분은 무엇입니까?
많은 도움에 감사드립니다.
http://stackoverflow.com/questions/2323394/zip-alternative-for- iterating-through-two-iterables –
@ Ari Gold, 감사합니다.하지만 언급 한 질문은 글을 쓰는 것이 아니라 병렬로 파일을 읽는 것에 관한 것입니다. –