쉼표 및 큰 따옴표가있는 CSV 파일이 있습니다. 그러나 큰 따옴표는 문자열 안에 쉼표가있는 경우에만 사용됩니다. 이처럼 :CSV 파일의 쉼표 및 큰 따옴표
AAA, BBB, "ACB,BCA", 123, "1,987"
DDC, CHA, ACH;HDC, "2,34", 192
나는 따옴표로 쉼표를 구문 분석하지 않고 다음과 같은 출력하고 싶은 : 이중와 값에 대한 쉼표를, 한마디로
x1 x2 x3 x4 x5
AAA BBB ACB,BCA 123 1,987
DDC CHA ACH;HDC 2,34 192
를 무시 따옴표없이 큰 따옴표없이 값을 쉼표로 간주하십시오.
파일 이름을 참조 일부 열을 추가하는 동안 나는, 하나의 CSV 파일에 여러 개의 CSV 파일을 병합하려면이 옵션을 사용하고 있습니다 :
이with open(outfile, "wb") as outfile:
writer = None
for input_filename in filenames:
with open(input_filename, "rb") as infile:
reader = csv.DictReader(infile, quotechar='"', delimiter=',')
if writer is None:
field_names = ["index1"] + ["index2"] + reader.fieldnames
writer = csv.DictWriter(outfile, field_names)
writer.writeheader()
for row in reader:
row["index1"] = input_filename[1:10]
row["index2"] = input_filename[10:20]
writer.writerow(row)
CSV를 읽기 내 특정 솔루션은 다음과 같습니다
csv.DictReader(infile, quotechar='"', delimiter=',')
을
하지만 분명히 작동하지 않습니다.
제안 사항?
편집 : 아래 더 나은 예 :
x 1,x 2,x 3,x 4,x5 AAA, “BB,B”, CCC, DDD, EEE AA1, B;B2, CC3, DD4, EE5
내가 해봤 파서에게 지금까지 csv.DictReader, PD :
내가 열 노력하고있어 csv 파일은 다음과 같이 구성되어있다 .read_csv 또는 csv.reader는 ";" B에서, B2는 다음 열을 모두 지우는 행 차단기입니다.
다음 코드는 "BB, B"문제를 해결하지만, 여전히 B 나누기, 아래의 코드는 여전히 나를 위해 일한과에 휴식하지 않았다
csv.reader(fileObject, quotechar='"', delimiter=',',
quoting=csv.QUOTE_ALL, skipinitialspace=True)
* "분명히 작동하지 않습니다"* :
이 내가받은 출력은? 대신 무엇을합니까? 'DictReader'는 헤더가 필요합니다. 그렇지 않은 경우'{ 'AAA': 'DDC', 'ACB': 'ACH, HDC', '987' ': 없음,'BBB ':'CHA ','BCA ' '', '123': '34 '', '1': '192'} '를 입력하십시오. – jonrsharpe
fieldname은 독자에게는 선택 사항이라고 생각하지만 필자는 대부분의 경우를 오른쪽 열에 배치합니다. x3 컬럼에있는 것들은 제외. "ACB, BCA"를 x3으로 맞추지 만 ACH를 볼 때 행으로 건너 뜁니다 .HDC. – tan
첫 번째 행이 헤더 일 경우 선택 사항이며 예제에서는 표시하지 않았습니다. [편집] [mcve]를 제공하는 것, 예를 들어 출력 행을 인쇄하는 것만으로도 충분할 것입니다. – jonrsharpe