행과 열이 많은 csv 파일을 읽으려고합니다. 특정 형식의 한 행을 텍스트 파일에 인쇄하고 값에 대한 해싱을 수행하고 싶습니다. 지금까지 파일을 읽고 DictReader를 사용하여 구문 분석하고 IF 문을 사용하여 원하는 행을 찾은 다음 키와 값을 인쇄 할 수있었습니다. 내가 원하는 형식으로 형식을 지정하는 방법을 알 수 없으며 (Key = Value \ n) 'row'값을 사용하여 파일에 쓰는 방법 (원하는 형식이 훨씬 적음)을 알 수 없습니다. 아래에서 얻은. 나는 며칠 동안 노력 해왔고 약간의 진전을 이루었지만 그것을 작동시킬 수 없습니다. 다음은 내가 일해야 할 것입니다 (결과에서 많은 세부 사항이 제외됨).
>>>import csv
with open("C:\path_to_script\filename_Brief.csv") as infh:
reader = csv.DictReader(infh)
for row in reader:
if row['ALIAS'] == 'Y4K':
print(row)
{ 'Full_Name': '잭 플래시', 'PHONE_NO': '555555-1212', 'ALIAS': 'Y4K'}
사용자에게 Alias를 입력하도록 요청한 다음이를 사용하여 인쇄 할 행을 결정하고 싶습니다. 나는 많은 연구를했지만 Python에 익숙하지 않아 도움을 요청하고 있습니다! 나는 pyexcel, xlrd / xlwt를 사용했고, 심지어 내가 pandas를 시도 할 것이라고 생각했지만 배우기에는 너무 많습니다. 또한 한 테스트에서 원하는 방식으로 서식을 지정했지만 행 선택이 작동하지 않습니다. 즉, 원하는 행이 아닌 모든 레코드를 인쇄합니다. 30 개의 Firefox 탭을 열어 답을 찾으세요! 미리 감사드립니다!
다음은 적어도 당신이 원하는 것에 가까울 수 있습니다 (제 생각에) :
import csv
with open(r'C:\path_to_script\filename_Brief.csv') as infh, \
open('new_file.txt', 'wt') as outfh:
reader = csv.DictReader(infh)
for row in reader:
if row['ALIAS'] == 'Y4K':
outfh.write('Full_Name = {Full_Name}\n'
'PHONE_NO = {PHONE_NO}\n'
'ALIAS = {ALIAS}\n'.format(**row))
이것은 모든 일치에 대해 다음과 같이 형식화 된 3 줄을 출력 파일에 기록합니다 row
.
Full_Name = Jack Flash
PHONE_NO = 555 555-1212
ALIAS = Y4K
BTW, **row
표기법은 기본적으로 "지정된 사전의 모든 항목을 가져와이 함수 호출에 대한 키워드 인수로 변환"을 의미합니다. {keyword}
형식 문자열 의 구문은 str.format()
메서드에 전달 될 모든 키워드 인수를 참조합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다