code summary 📂프로그래밍

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 이후의 부분foosys.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

댓글