큰 csv 파일을 가져와 열의 특정 단어를 기반으로 여러 csv 파일로 분할하는 코드를 작성했습니다. 원본 csv 파일에는 문자열 인 일부 필드가 있으며 주위에 따옴표가 있습니다. 예를 들어문자열을 따옴표로 묶어서 csv 작성하기 (Python)
:
Field1,Field2,Field3,Field4
1,2,"red",3
1,4,"red",4
3,4,"blue",4
등
내 코드 입력란 4에 따라 별도의 CSV를로 파일을 분할합니다.
내 출력은 다음과 같습니다
내 출력 파일이 문자열 주위에 따옴표가있는 경우에만 작동 소프트웨어의 조각에 공급 필드 3에 문자열 따옴표를 유지하려는3.csv
Field1,Field2,Field3,Field4
1,2,red,3
4.csv
Field1,Field2,Field3,Field4
1,4,red,4
3,4,blue,4
, 그것은 꽤 성가시다.
나의 현재 코드는 다음과 같습니다
는import csv
#Creates empty set - this will be used to store the values that have already been used
newfilelist = set()
#Opens the large csv file in "read" mode
with open('File.csv, 'r') as csvfile:
#Read the first row of the large file and store the whole row as a string (headerstring)
read_rows = csv.reader(csvfile)
headerrow = next(read_rows)
headerstring=','.join(headerrow)
for row in read_rows:
#Store the whole row as a string (rowstring)
rowstring=','.join(row)
#Takes Field 4
newfilename = (row[3])
#This basically makes sure it is not looking at the header row.
if newfilename != "field4":
#If the newfilename is not in the newfilename set, add it to the list and create new csv file with header row.
if newfilename not in newfilelist:
newfilelist.add(newfilename)
with open('//output/' +str(newfilename)+'.csv','a') as f:
f.write(headerstring)
f.write("\n")
f.close()
#If the newfilename is in the newfilelist set, append the current row to the existing csv file.
else:
with open('//output/' +str(newfilename)+'.csv','a') as f:
f.write(rowstring)
f.write("\n")
f.close()
는 사람이 어떻게 문자열 주위에 따옴표를 얻을 내게 조언을 할 수 있습니까? 불행히도 내 파일을 사용하는 소프트웨어는이 파일 형식이어야합니다!
은 아마이 https://stackoverflow.com/questions/36628847/keep-double-quotes-in-a-text-file-using-csv-reader –