CSV를 구문 분석하려고하는데 어느 기준에 부합하는지 조건이 충족되면 새 CSV에이를 작성하십시오. 예를 들어CSV를 쿼리하고 원본 CSV 및 결과를 단일 CSV Python으로 작성하십시오.
나는 숫자가 첫 번째 열에 표시하지 두 번째는 그때 그 추출해야합니다 그래서 만약 각 라인을 분석 할 필요가
123 Some Street
Flat 1, 21 Other road
House, Someother street
처럼 보이는 CSV가있는 경우 두 열 모두에 숫자가 있으면 둘 다 추출해야하며 숫자가없는 경우 첫 번째 열에 텍스트를 추출해야합니다. 그런 다음 원본 열 2 개와 새로운 번호 1, 2, 텍스트 3 개의 새로운 csv를 작성하십시오. 즉 플랫 번호, 집 번호, 집 이름. 그래서 새로운 CSV 매우 도움이 될 것
123 Some Street, , 123,
Flat 1, 21 Other road, 1, 21,
House, Someother street, , , House.
모든 지침과 같을 것이다. 내가 출력이 가진 새로운 CSV가 될 싶은
:
감사
편집
import csv
csvFile = 'myData.csv'
csvOut = 'myOut.csv'
reader = csv.reader(csvFile)
writer = csv.writer(csvOut)
for row in reader:
num = \d | \d\d | \d\d\d
if row [0] || row [1] == num
if row [1] == num
writer.row [3]
else row [0] == num
writer.row [2]
writer.row [3]
else writer.row [0] [2]
csvOut.close()
다시
나는이 명확 explination 될 수 있기를 바랍니다편집 행 [0], [1]에 원본 데이터가있는 경우 행에 숫자가 하나만 있으면 행 [3]에 기록 된 집 번호가 한 행에 2 개의 숫자 (행 [0] 및 행 [1]), 행 [2] 및 [3]에 각각 기록되어야하며 숫자가 없으면 행 [0]의 문자열이 행 [4]에 기록됩니다. 궁극적으로 플랫 번호, 집 번호 및 집 이름을 3 개의 다른 열로 구분해야합니다.
내가 코드에 노력하고있다 지금은 다음을 또 편집, 나는 점점 더 가까이 느낀다 그러나 아직도 멀리 방법은?
import csv
import re
csvFile = open(myData.csv, 'rb')
csvOut = open(myOut.csv, 'wb')
reader = csv.reader(csvFile)
writer = csv.writer(csvOut)
for row in reader:
a = row [0] re.compile('\d' | '\d\d' | '\d\d\d')
a1 = row [0] re.compile('\d' | '\d\d' | '\d\d\d')
b = row [1]
b1 = row [1] re.compile('\d' | '\d\d' | '\d\d\d')
if b = re.compile('\d' | '\d\d' | '\d\d\d')
writer.writerow(a,b,a1,b1,)
elif a = re.compile('\d' | '\d\d' | '\d\d\d')
witer.writerow(a,b, , b1,)
else
writer.writerow(a,b, , ,a)
csvOut.close()
감사
시작 결과를 갖는다 /csv.html). – Blender
먼저 편집 해 주셔서 감사합니다. 나는 CSV를 통해 좋은 모습을 보았고 csv.dictreader는 현재 내 문제는 로직/정규식이 필요한 항목을 추출하는 방법에 관한 것입니다. 감사합니다 – user1463172
지금 가지고있는 코드를 게시 할 수 있습니까? – Blender