파이썬, 주피터노트북 | 디렉토리 변경, txt 파일 읽기, 딕셔너리 & csv로 저장

Joy·2020년 9월 1일
0

기타

목록 보기
4/12

프로젝트를 하다가 텍스트 데이터를 만들기 위해 저장한 엄청나게 많은 txt 파일을 읽어와야 하는 일이 생겼다. 주피터노트북으로 데이터 작업을 하다보면 외부 파일을 읽는 경우가 많았는데, 이 참에 코드를 저장해서 필요할 때 마다 참고하려고 한다.


디렉토리 확인, 이동

주피터 노트북에서 파일을 읽거나 저장할 디렉토리를 리눅스 명령어를 사용해서 지정할 수 있다.

    pwd #현재 디렉토리 확인
    cd 폴더이름 #폴더로 이동

주요 리눅스 명령어
pwd : 현재 자신이 위치하는 디렉토리
cd : 디렉토리 이동
ls : 자신이 속해있는 폴더 내에서의 파일 및 폴더들을 표시
mkdir : 디렉토리 생성 ( 폴더 생성 ) == 앞으로 폴더를 디렉토리로 쓰겠습니다.
rmdir : 디렉토리 삭제
touch : 파일크기가 0인 파일 생성


특정 디렉토리 내 파일 이름 모두 가져오기

한 폴더에 있는 파일을 모조리 열고 싶은데 이름이 제각각이라 리스트에 하나하나 써줘야 하나 고민하다가 발견한 방법.
oslistdir 를 사용하면 dir에 있는 파일 이름을 리스트로 가져와준다.

파일들 이름을 리스트에 저장

    import os
    path = "./"
    file_list = os.listdir(path) # 리스트에 저장하기

파일 하나씩 열어서 딕셔너리에 저장

앞에서 만든 리스트를 활용해서 하나하나 열고 딕셔너리에 저장해주는 방법.

    dict_name = {}
    list = file_list

    for i in list:
        file = open(i, "r",  encoding='UTF-8')
        text = file.read()
        dict_name[i] = text
        print(i+"끝") # 파일 하나 끝날 때 마다 끝났다고 출력해주기
        file.close()

    #피클로 저장하고 싶으면
    import pickle
    with open("name.pickle","wb") as fw:
        pickle.dump(dict_name, fw)

++ 딕셔너리를 csv로 저장하기

딕셔너리를 csv로 바꿔서 저장하는 법.

    # 딕셔너리를 csv 파일에 저장하기
    with open('name_and_text.csv', 'w', encoding='utf-8', newline='') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames = ['index','name','text'])
        writer.writeheader()
        for key, value in dict_name.items(): #딕셔너리로 for 문
            i = 0
            writer.writerow({'index': i , 'name': key, 'text': value})
            i += 1
profile
roundy

0개의 댓글