DictReader를 사용하여 csv 파일의 한 행을 읽은 다음 (가능한 경우 입력을 기반으로) 새 파일에 형식 지정 및 쓰기

tmdb

행과 열이 많은 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 탭을 열어 답을 찾으세요! 미리 감사드립니다!

Martineau

다음은 적어도 당신이 원하는 것에 가까울 수 있습니다 (제 생각에) :

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관