IT박스

파이썬의 os.makedirs가 내 경로에서“~”를 이해하지 못합니다.

itboxs 2020. 6. 28. 19:24
반응형

파이썬의 os.makedirs가 내 경로에서“~”를 이해하지 못합니다.


나는 ~에 약간의 문제가 있습니다.

이 코드 예제는 "~ / some_dir"이라는 일부 디렉토리를 작성하며 홈 디렉토리에 some_dir을 작성하려고한다는 것을 이해하지 못합니다.

my_dir = "~/some_dir"
if not os.path.exists(my_dir):
    os.makedirs(my_dir)

이것은 Linux 기반 시스템에 있습니다.


물결표를 수동으로 확장해야합니다.

my_dir = os.path.expanduser('~/some_dir')

로 변환하는 ~/some_dir것을 물결 확장$HOME/some_dir 이라고 하며 일반적인 사용자 인터페이스 기능입니다. 파일 시스템은 그것에 대해 아무것도 모릅니다.

파이썬에서이 기능은 os.path.expanduser에 의해 구현됩니다 :

my_dir = os.path.expanduser("~/some_dir")

아마도 파이썬은 배쉬가 아니며 같은 규칙을 따르지 않기 때문일 것입니다. 이것을 사용할 수 있습니다 :

homedir = os.path.expanduser('~')

from srblib import verify_folder

verify_folder('path/to/folder')

폴더가 없으면 폴더를 만들지 않습니다.

참고 : 필요한 경우 경로에 폴더를 만듭니다.

srb@srb-pc:~/hello$ ls
srb@srb-pc:~/hello$ python3 
>>> from srblib import verify_folder
>>> verify_folder('~/hello/A/B')
>>> exit()
srb@srb-pc:~/hello$ ls
A
srb@srb-pc:~/hello$ ls A
B
srb@srb-pc:~/hello$ 

이 기능은 다음과 같이 작동합니다 mkdir -p path/to/folder


당신은 지금처럼 할 수 있습니다

from srbib import abs_path
my_dir = abs_path('~/path/to/dir')
if not os.path.exists(my_dir):
    os.makedirs(my_dir)

사용 방법은 https://stackoverflow.com/a/54190233/6799074참조하십시오.srblib.abs_path

참고 URL : https://stackoverflow.com/questions/2057045/pythons-os-makedirs-doesnt-understand-in-my-path

반응형