복붙노트

[PYTHON] 이전 csv 파일에 새 행 추가 python

PYTHON

이전 csv 파일에 새 행 추가 python

내 오래된 CSV 파일에 새 행을 추가하려고합니다. 기본적으로 파이썬 스크립트를 실행할 때마다 업데이트됩니다.

지금은 목록에 이전 csv 행 값을 저장하고 csv 파일을 삭제하고 새 목록 값으로 다시 작성합니다.

이 작업을 수행하는 데 더 좋은 방법이 있는지 알고 싶습니다.

해결법

  1. ==============================

    1.

    with open('document.csv','a') as fd:
        fd.write(myCsvRow)
    

    'a'매개 변수를 사용하여 파일을 열면 기존 내용을 덮어 쓰지 않고 파일 끝에 추가 할 수 있습니다. 시도해 봐.

  2. ==============================

    2.필자는이 솔루션을 표준 라이브러리의 csv 모듈과 with 문을 사용하여 파일을 열어 두는 것을 선호합니다.

    필자는이 솔루션을 표준 라이브러리의 csv 모듈과 with 문을 사용하여 파일을 열어 두는 것을 선호합니다.

    요점은 'a'를 사용하여 파일을 열 때 추가하는 것입니다.

    import csv   
    fields=['first','second','third']
    with open(r'name', 'a') as f:
        writer = csv.writer(f)
        writer.writerow(fields)
    

    Windows에서 불필요한 새 행이 발생할 수 있습니다. 'a'대신 'ab'를 사용하여 피해야합니다.

  3. ==============================

    3.'w'대신 'a'의 모드로 파일을여시겠습니까?

    'w'대신 'a'의 모드로 파일을여시겠습니까?

    파이썬 문서에서 파일 읽기 및 쓰기를 참조하십시오.

  4. ==============================

    4.@G M의 답을 바탕으로 @ John La Rooy의 경고에주의하면서 'a'모드로 파일을 여는 새 행을 추가 할 수있었습니다.

    @G M의 답을 바탕으로 @ John La Rooy의 경고에주의하면서 'a'모드로 파일을 여는 새 행을 추가 할 수있었습니다.

    import csv
    
    with open(r'names.csv', 'a', newline='') as csvfile:
        fieldnames = ['This','aNew']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    
        writer.writerow({'This':'is', 'aNew':'Row'})
    

    나는 일반 작가 (Dict없이)와 함께 시도하지는 않았지만 나는 괜찮을 것이라고 생각한다.

  5. ==============================

    5.

    # I like using the codecs opening in a with 
    field_names = ['latitude', 'longitude', 'date', 'user', 'text']
    with codecs.open(filename,"ab", encoding='utf-8') as logfile:
        logger      = csv.DictWriter(logfile, fieldnames=field_names)
        logger.writeheader()
    
    # some more code stuff 
    
        for video in aList:
          video_result = {}                                     
          video_result['date'] = video['snippet']['publishedAt']
          video_result['user'] = video['id']
          video_result['text']=video['snippet'] ['description'].encode('utf8')
          logger.writerow(video_result)    
    
  6. from https://stackoverflow.com/questions/2363731/append-new-row-to-old-csv-file-python by cc-by-sa and MIT license