관리 메뉴

15. 파이썬(Python) 같은파일, 폴더 존재유무 확인하기 본문

Python/Python 기본 개념

15. 파이썬(Python) 같은파일, 폴더 존재유무 확인하기

ª_ª 2017. 11. 13. 10:04
728x90
반응형





 

 

파이썬 같은 파일, 폴더 존재유무 확인하기

  파이썬 파일을 만들다 보면 w키워드를 사용할 경우에 파일이 없으면 파일이 생성되지만 파일이 있으면 안에 있는 내용을 다 지우고 새로 내용을 채우게 됩니다. 이러한 방법을 해결하기 위해서 현재 그 파일명이 존재유무와 폴더존재유무에 대해서 살펴보도록 하겠습니다.

 

1. 파이썬 파일명유무 확인 모듈(os)

앞장에서 살펴보았듯이 모듈을 이용해서 파일 혹은 폴더의 존재여부를 확인할 수 있습니다.

 

1_1. os.path.exists("경로 + 파일명“ or "파일명”)

>>> import os

>>> os.path.exists("C:\\Users\\Administrator\\Desktop\\test.txt")

True

파일이 존재하면 True()값을 반환합니다.

 

>>> os.path.exists("C:\\Users\\Administrator\\Desktop\\test1.txt")

False

파일이 존재하지 않으면 False(거짓)값을 반환합니다.

 

1_2. 디렉터리 변경을 사용해서 파일명만 써보도록 하겠습니다.

>>> import os

>>> os.getcwd()

'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36-32'

>>> os.chdir("C:\\Users\\Administrator\\Desktop\\")

>>> os.getcwd()

'C:\\Users\\Administrator\\Desktop'

위 방법은

<2017/09/04 - [Python/Python 기본 개념] - 11. 파이썬(Python) IDLE 디렉터리(폴더) 위치 변경>

여기로 가시면 자세하게 설명 되어 있습니다.

 

>>> os.path.exists("test.txt")

True

>>> os.path.exists("test1.txt")

False

경로를 설정했기 때문에 파일명만 입력해서 파일의 존재 유무를 확인 할 수 있습니다.


2. 현재 경로에 파일 유무를 확인하고 파일생성하기

  현재 경로에 파일이 존재하면 파일을 생성하지 않는 에러문을 발생시키고 생성하지 못하도록 하고 파일이 존재하지 않으면 파일을 생성하는 구문을 간단하게 작성해 보겠습니다.

 

>>> import os

>>> while True:

file = input("파일명을 입력하세요(exit입력 종료):")

if file == 'exit' :            # 반복문을 빠져나오는 조건문

print("종료합니다.\n")

break

elif os.path.exists(file): # 파일 있으면 에러

print("파일이 존재합니다. 다시입력해 주세요\n")

continue

else :                             # 파일이 없으면 생성

f = open(file,"w")

string = input("간단한 문장을 넣어주세요:")

f.write(string)

f.close()

print("파일이 생성되었습니다.\n")


파일명을 입력하세요(exit입력 종료):test.txt

파일이 존재합니다. 다시입력해 주세요

 

파일명을 입력하세요(exit입력 종료):test1.txt

간단한 문장을 넣어주세요:test1.txt hello~!

17

파일이 생성되었습니다.

 

파일명을 입력하세요(exit입력 종료):test1.txt

파일이 존재합니다. 다시입력해 주세요

 

파일명을 입력하세요(exit입력 종료):exit

종료합니다.


파일이 잘 생성 되었는지 확인 

>>> f = open("test1.txt", "r")

>>> f.read()

'test1.txt hello~!'

>>> f.close()

반복문을 종료하고 test1.txt파일이 진짜로 생성되었는지 확인해 봤더니 입력한 내용 그대로 출력되는 것을 확인할 수 있습니다.







 

728x90
반응형
Comments