끄적이는 기록일지

8. [파이썬] 디렉토리와 파일관리(SyntaxError 오류) 본문

파이썬

8. [파이썬] 디렉토리와 파일관리(SyntaxError 오류)

시시나브로 2021. 7. 2. 01:22
728x90
 

7. [파이썬] 사용자정의 함수와 패키지 모듈

6. [파이썬] 조건문과 반복문 - 반복문(2) 6. [파이썬] 조건문과 반복문 - 조건문(1) 5. [파이썬] 데이터 유형과 함수 - 리스트(2) 5. [파이썬] 데이터 유형과 함수 - 숫자형, 문자열(1) 4. 파이썬 변수와

kcy51156.tistory.com

 

 

1. os 모듈을 통한 디렉토리 관리

1) getcwd()함수 - get current working directory. 현재 작업 경로

2) chdir()함수 - change directory. 현재 작업 디렉토리 경로 변경

3) listdir()함수 - 지정된 폴더내의 파일과 폴더의 목록을 출력하는 함수

 

import os

print('현재 디렉토리 :',os.getcwd())
os.chdir("C:\Program Files\Python375\py-temp")
print('이동 후 디렉토리 :', os.getcwd())

os.listdir("C:\Program Files\Python375\py-temp")

for i in os.listdir("C:\Program Files\Python375\py-temp") :
    print(i)

    
>>현재 디렉토리 : c:\temp
이동 후 디렉토리 : C:\Program Files\Python375\py-temp
.ipynb_checkpoints
calculation.ipynb
calculation.py
Untitled.ipynb
__pycache__
연습.ipynb

 

 

 

4) os.path.exists()함수 - 특정 폴더의 존재 여부 확인(유무)

print(os.path.exists("C:\Program Files\Python375\py-temp"))
print(os.path.exists("C:\temp100"))


>>True
False

 

5) mkdir()함수와 makedirs()함수

 

- mkdir() - 한번에 하나씩 생성. 하위폴더까지 생성 불가

- makedirs() - 하위폴더까지 한번에 생성

- path.join() - 기존 경로와 새로운 파일 이름을 합쳐서 하위 경로 생성

import os 

os.makedirs("c:\\py_temp2")  #파일 생성
os.chdir("c:\\py_temp2")     #파일 이동

file = open("test1.txt","w") #open() - 파일 생성, 열기
file.write("파일에 처음 쓴 글입니다.")
file.close()

 

6) rmdir()함수와 removedirs()함수 

 

- rmdir() - 한번에 하나씩 삭제

- removedirs() - 하위폴더까지 한번에 삭제

 

 

 

2. 텍스트 형식(txt)파일 관리하기

기호 t b r w a +
모드 텍스트(기본) 바이너리 읽기(기본) 쓰기 이어쓰기 읽기, 쓰기

 

file1 = open("test_new.txt",'a')
file1.write("\n이번엔 80점 입니다.")
file1.close()

 

- 50, 60, 70, 80 차례대로 바꿔주면서 실행하면 아래와 같은 결과가 나옵니다.

 

 

 

 

3. xls형식과 csv형식으로 관리하기

 

1) 먼저 cmd에 들어가 필요한 모듈을 설치합니다.

 

pip install pandas
pip install openpyxl

 

- 만약 오류가 뜬다면 관리자 권한으로 실행해보세요.

- 필요시 파이썬 인스톨 프로그램(pip) 자체를 업그레이드합니다.

 

python -m pip install --upgrade pip

 

 

2) 표 (데이터 프레임) 만들기(csv형식, xls형식)

 

- 'utf-8-sig' 옵션 : UTF-8 문서를 편집할 때 강제로 삽입되는 BOM(Byte Order Mark)를 제거합니다.

 

import pandas as pd

no = []            #과목번호 리스트 
subject_name = []  #과목명 리스트

no.append(1)       # 마지막에 데이터 추가
no.append(2)
no.append(3)

subject_name.append('수학')
subject_name.append('과학')
subject_name.append('빅데이터')

subject = pd.DataFrame()  #데이터프레임 생성
subject['과목번호'] = no
subject['과목명'] = subject_name
print(subject)

#csv형식으로 저장하기
subject.to_csv("c:\\py_temp2\\subject.csv", encoding = "utf-9-sig", index = False)

#xls형식으로 저장하기
subject.to_excell("c:\\py_temp2\\subject.xls", index = False)


>>   과목번호   과목명
0     1    수학
1     2    과학
2     3  빅데이터

 

- xlwt 패키지는 더 이상 유지되지 않기 때문에, openpyxl을 설치하고 xls를 xlsx 파일로 변경하여 쓰세요.

 

 

 

- 만약 이 때 SyntaxError 오류가 나온다면 먼저 전체 드래그해서 메모장에 붙여넣기를 한 후, 인코딩을 ANSI로 지정해줍니다.

 

 

 

- 여기서 보이는 물음표를 제거해준 후 다시 붙여넣습니다.

 

 

 

 

연습문제 - 1

 

사용자에게 폴더명은 하나 입력 받아서 해당 폴더가 존재하지 않을 경우에는 해당 폴더를 만들고 해당 폴다가 존재할 경우 "폴더명_2"의 이름으로 만들도록 코드를 작성하시오.

 

#사용자에게 폴더명은 하나 입력 받아서 해당 폴더가 존재하지 않을 경우에는 
#해당 폴더를 만들고 해당 폴다가 존재할 경우 "폴더명_2"의 이름으로 만들도록 
#코드를 작성하시오.

import os 

def createFolder(directory) :
    if os.path.isdir(directory) :
        os.makedirs(directory + "_2")
    else :
        os.makedirs(directory)
            

file_name = "c:\\" + input("폴더명을 지정해주세요:")
createFolder(file_name)


>>폴더명을 지정해주세요:py_temp2

 

- 디렉토리로 들어가보면 폴더가 생긴 것을 볼 수 있다.

 

728x90
Comments