code summary
code summary
Python
실행 파일의 경로 os.getcwd()
-
main.__file__
: 파일 이름과 확장자를 포함한 경로는 얻는다. -
os.path.dirname(os.path.realpath(__file__))
: 파일이 포함된 폴더의 경로를 얻는다. 터미널에서 파이썬 파일 실행시킬 때도 의도한 대로 기능하게 하려면 이걸 써야함. -
os.getcwd()
: 현재 작업 경로를 얻는다. 탐색기에서*.py
파일을 실행할 땐 의도대로 작동하지만, 터미널에서 실행시키면 터미널 경로를 얻음.
>>> import os
>>> import __main__ as main
>>> x = main.__file__
>>> print(x, "\n")
C:/Users/admin/Desktop/Python/test.py
>>> y = os.path.dirname(os.path.realpath(__file__))
>>> print(y, "\n")
C:/Users/admin/Desktop/Python
>>> z = os.getcwd()
>>> print(z)
C:/Users/admin/Desktop/Python
경로가 존재하는지 확인 os.path.exists(directory)
os.path.exists(directory)
: 경로가 존재하는지에 따라 True 혹은 Flase를 반환한다.
폴더 생성 os.makedirs(directory)
os.makedirs(directory)
입력한 경로가 없으면 폴더를 만드는 코드.
def create_directory(directory):
try:
if not os.path.exists(directory):
os.makedirs(directory)
except OSError:
print("Error: Failed to create the directory.")
폴더 삭제
하위 폴더 탐색하면서 빈 폴더면 삭제하는 코드.
import os
directory = os.path.dirname(os.path.realpath(__file__))
for (path, dir, files) in os.walk(directory):
try:
os.removedirs(str(path))
except:
print("디렉토리가 비어있지 않습니다.")
실행 파일의 하위 경로의 특정 파일 모두 찾기
실행 파일이 위치한 폴더를 포함한 하위 경로의 파이썬 파일*.py
을 모두 찾는 코드이다.
실행 파일이 위치한 폴더도 탐색 범위에 포함되므로 실행 파일 자체도 file_list
에 포함된다.
directory = os.getcwd()
file_list = []
for (path, dir, files) in os.walk(directory):
for filename in files:
ext = os.path.splitext(filename)[-1]
if ext == '.py':
file_list.append("%s\\%s" % (path, filename))
실행 변수 sys.argv
python 이후의 부분foo을 sys.argv = foo.split()
으로 받아오는 것.
# 파일 실행
import os
os.system("python " + "file_directory/foo.py " + argv1 + " " + argv2)
## foo.py 내부 코드
import sys
# sys.argv[0]는 "file_directory/foo.py "임
variable1 = sys.argv[1]
variable2 = sys.argv[2]
파일 읽고 쓰기
읽기와 쓰기를 따로 해아한다. 뒤에 “t"를 붙이면 text, “b"를 붙이면 binary 모드
- “rt"는 read text 모드, 읽기 전용, 파일 없으면 에러
- “w"는 write 모드, 파일이 있든 없든 새로 만든다.
- “a"는 append 모드, 파일이 없으면 새로 만들고, 있으면 기존 파일의 마지막에 내용 추가.
- “x"는 create 모드, 이미 파일이 있으면 에러.
# 텍스트 파일 열고 내용 가져오기, 그리고 닫기
foo_read = open(file_directory + "foo.txt", "rt", encoding="utf-8")
lines = foo_read.readlines()
foo_read.close()
readlines()
는 txt 파일의 각 줄을 리스트의 성분(문자열)으로 받아온다. 줄바꿈이 있으면 마지막에 '\n'
도 포함됨. .strip()
으로 마지막의 '\n'
를 지울 수 있다.
foo_write = open(file_directory + "foo.txt", "wt", encoding="utf-8")
foo_write.write("bar\n") # 한 줄 쓰기
lines = ["bar1\n", "bar2\n", "bar3\n"]
foo_write.lines(lines) # 여러 줄 쓰기
foo_write.close()
문자열
.strip()
: 앞과 뒤에서 문자열 지움. 변수 없으면 (줄바꿈 등을 포함한) 공백을 지움. 따라서 문자열의 시작과 끝의 공백을 지울 때 유용함.
Julia
댓글