큰 따옴표 사이에 쉼표를 무시하고 큰 따옴표 사이에없는 쉼표를 제거하는 방법은 무엇입니까?사용자 지정 Python CSV 구분 기호
답변
배터리가 포함되어 있습니다 - 단순히 파이썬과 함께 제공되는 csv
module을 사용하십시오.
예 :
그냥 관심을import csv
if __name__ == '__main__':
file_path = r"/your/file/path/here.csv"
file_handle = open(file_path, "r")
csv_handle = csv.reader(file_handle)
# Now you can work with the *values* in the csv file.
나는 csv 모듈을 사용하여 끝냈다. 감사! – tijko
, 당신 수 (대부분) 할 정규 표현식을 사용하여;
mystr = 'No quotes,"Quotes",1.0,42,"String, with, quotes",1,2,3,"",,""'
import re
csv_field_regex = re.compile("""
(?:^|,) # Lookbehind for start-of-string, or comma
(
"[^"]*" # If string is quoted: match everything up to next quote
|
[^,]* # If string is unquoted: match everything up to the next comma
)
(?=$|,) # Lookahead for end-of-string or comma
""", re.VERBOSE)
m = csv_field_regex.findall(mystr)
>>> pprint.pprint(m)
['No quotes',
'"Quotes"',
'1.0',
'42',
'"String, with, quotes"',
'1',
'2',
'3',
'""',
'',
'""']
인용 부호가있는 문자열 안에 나타나는 이스케이프 된 인용 부호를 제외한 모든 것을 처리합니다. 이 경우도 처리 할 수 있지만 정규식은 더 이상 없습니다. 이것이 우리가 csv
모듈을 가지고있는 이유입니다.
-1 인용 문자열은 둘러싸인 따옴표없이 반환되어야합니다. 또한 이것은 사용자가 입력 파일을 행으로 나눌 책임이 있다고 가정합니다. 데이터에 개행 문자가있을 때 약간 어렵다. –
@ JohnMachin : CSV를 정규식으로 파싱하는 경우 이보다 더 큰 문제가 있습니다. ;) –
** ** 당신은 정규 표현식으로 CSV를 파싱하는 사람입니다. 나는 당신이 그 대답을 전혀 쓰지 않은 이유를 상상할 수 없다. "대부분"== "실패". –
- 1. Python csv writer 틀린 구분 기호?
- 2. 강제 CSV 구분 기호
- 3. CSV 내보내기에서 구분 기호 변경
- 4. Python ZipFile 경로 구분 기호
- 5. CSV 날짜 및 구분 기호 문제
- 6. CSV 파일의 레코드/행 구분 기호 검색
- 7. Python 2.6.1 : 예상 경로 구분 기호 ([)
- 8. jQuery 키/값 구분 기호 서식 지정
- 9. FasterCSV : 여러 구분 기호
- 10. JSpinner에서 구분 기호 제거
- 11. WPF 구분 기호 위치
- 12. WordPress 사용자 정의 메뉴 구분 기호/구분자
- 13. UITableView 사용자 정의 구분 기호, 선택시 숨기기
- 14. 사용자 지정 UITableViewCell에 줄 구분 기호가 없습니다.
- 15. python csv register_dialect
- 16. 구분 기호 배열로 분해
- 17. 셀 구분 기호
- 18. 분할 다른 구분 기호
- 19. StatusBar에서 구분 기호 사용
- 20. ListView의 "구분 기호"
- 21. Zend_Navigation_Container 세트 구분 기호
- 22. 자바 스캐너 구분 기호 \
- 23. sprintf 소수 구분 기호
- 24. Textfieldparser 구분 기호
- 25. 루비 YAML 구분 기호
- 26. mysql 변경 구분 기호
- 27. Python의 문자열 구분 기호
- 28. 키 포함 구분 기호
- 29. 필드 구분 기호 변경
- 30. Regex의 다른 구분 기호
귀하의 질문은 명확하지 않습니다. 필자가 입력 형식의 예와 원하는 것을 제공하면 도움이 될 것이라고 생각합니다. – zigg
바라건대 [적절한 csv 파서] (http://docs.python.org/library/csv.html)를 사용하고 수동으로 구문 분석하지 않으십시오. –
마이클, 이것은 CSV 형식으로 텍스트 줄을 구문 분석하려는 운동이었습니다. 나는 csv 모듈을 사용하여 끝내었다. 나는 여전히 모듈 밖에서 그것을 해결하는 방법에 관심이있다. – tijko