파이썬/파이썬일반

python(vscode)/csv 파일 일부분 읽어오기/csv 마지막 줄 카운트하기/seek

gongdol 2023. 7. 16. 11:39
300x250

1. csv 파일 준비

   1) 내가 원하는것은 위 1-5 줄 스킵하고 마지막 eof 스킵하고 데이터를 추출하고싶다. 

2. 코드 작성

  0) write 파일 작성할때 newline=''  , 설정은 필수다. 왜냐하면 프로그램 기본설정이 엔터가 들어가 있어 없애줘야한다.  

  1) csv 마지막줄의 카운트를 가져오는 것은 7번줄 참고 

  2) for 문으로 원하는 줄만 새로운 파일에 저장하는 12 번줄 참고

     -> 12번줄 하기전에 읽어온 fileObject를 카운트 계산하는데 한번 사용해서 초기화 해줘야함

     -> 초기화는 10번줄 참고 (초기화 안하면 csv 파일을 한번더 다시 읽어 줘야 할것이다)

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def csv_delete(name):
    import csv
    with open(name, 'r'as inp, open('name_edit.csv''w', newline=''as out:
        writer = csv.writer(out)
        fileObject = csv.reader(inp)
        
        last_count=len(list(fileObject))
        print(last_count) # 마지막줄을 출력합니다.
 
        inp.seek(0# 파일의 reader 초기화 해줘야 다음 코드가 작동합니다.
        
        for index, row in enumerate(fileObject):
            # print(row)
            if index > 5-1 and index < last_count-1:
                writer.writerow(row)
 
csv_delete('edit_csv_example.csv')
cs

 

3. 결과

  1) 내가 원하는 부분만 추출해내었다. 

  2) 파일저장은 계속 덮어서 작성된다. 기존거 잃기 싫으면 파일명을 바꾸든지 해야함.

 

300x250