현재 디렉터리 및 파일 디렉터리 찾기
판단 방법:
- 현재 디렉토리(Python 스크립트를 실행할 때 터미널에 있었던 위치) 및
- 실행 중인 Python 파일은 어디에 있습니까?
Python 파일이 포함된 디렉토리의 전체 경로를 가져오려면 해당 파일에 다음과 같이 입력합니다.
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
의 주문은 os.chdir()
하려면 이 합니다.__file__
는 현재 으로, constant에 .os.chdir()
현재 작업 디렉토리를 가져오려면
import os
cwd = os.getcwd()
위에서 사용한 모듈, 상수 및 함수에 대한 문서 참조:
- 및 모듈
- 상수
os.path.realpath(path)
("지정된 파일 이름의 표준 경로"를 사용하여 경로에서 발생하는 심볼릭 링크를 제거합니다.)os.path.dirname(path)
('경로명의 디렉토리명'으로 표기)os.getcwd()
("현재 작업 디렉토리를 나타내는 문자열"로 표시됨)os.chdir(path)
("현재 작업 디렉토리를 "로 변경)
또한 이 속성은 실행 중인 파일의 위치를 찾는 데 도움이 됩니다.이 Stack Overflow 투고에서는 모든 것에 대해 설명합니다.Python에서 현재 실행 중인 파일의 경로를 얻으려면 어떻게 해야 합니까?
이것은 참조용으로 도움이 될 수 있습니다.
import os
print("Path at terminal when executing this file")
print(os.getcwd() + "\n")
print("This file path, relative to os.getcwd()")
print(__file__ + "\n")
print("This file full path (following symlinks)")
full_path = os.path.realpath(__file__)
print(full_path + "\n")
print("This file directory and name")
path, filename = os.path.split(full_path)
print(path + ' --> ' + filename + "\n")
print("This file directory only")
print(os.path.dirname(full_path))
Python 3.4(PEP 428 - pathlib module - 객체 지향 파일 시스템 경로)에서 도입된 이 모듈은 경로 관련 경험을 훨씬 향상시킵니다.
pwd
/home/skovorodkin/stack
tree
.
└── scripts
├── 1.py
└── 2.py
현재의 작업 디렉토리를 취득하려면 , 다음의 커맨드를 사용합니다.
from pathlib import Path
print(Path.cwd()) # /home/skovorodkin/stack
스크립트 파일의 절대 경로를 가져오려면 다음 방법을 사용합니다.
print(Path(__file__).resolve()) # /home/skovorodkin/stack/scripts/1.py
또, 스크립트가 있는 디렉토리의 패스를 취득하려면 , 에 액세스 합니다(콜을 실시하는 것을 추천합니다)..resolve()
전에.parent
print(Path(__file__).resolve().parent) # /home/skovorodkin/stack/scripts
하세요.__file__
신뢰할 수 없는 경우가 있습니다.Python에서 현재 실행 중인 파일의 경로를 얻으려면 어떻게 해야 합니까?
해 주세요, 그 세주주주 please please please please please please please please 。Path.cwd()
,Path.resolve()
타 andPath
메서드는 문자열이 아닌 경로 PosixPath
개체를 반환합니다.Python 3.4 및 3.5에서는 내장 함수가 문자열 또는 바이트 개체에서만 작동할 수 있고 지원하지 않았기 때문에 약간의 문제가 발생했습니다.Path
하지 않으면 안 그러면 안 됩니다.Path
오브젝트를 문자열로 변환하거나 메서드를 사용하지만 후자 옵션에서는 이전 코드를 변경해야 합니다.
파일 스크립트/2화이
from pathlib import Path
p = Path(__file__).resolve()
with p.open() as f: pass
with open(str(p)) as f: pass
with open(p) as f: pass
print('OK')
산출량
python3.5 scripts/2.py
Traceback (most recent call last):
File "scripts/2.py", line 11, in <module>
with open(p) as f:
TypeError: invalid file: PosixPath('/home/skovorodkin/stack/scripts/2.py')
바와 같이, '우리'는 '우리'입니다.open(p)
Python 3.5 python python python python python python python python python python python python python python python python python python 。
PEP 519 — Python 3.6에서 구현된 파일 시스템 경로 프로토콜을 추가하면 함수에 객체 지원이 추가되므로 이제 합격할 수 있습니다.Path
에 대한 오브젝트open
접접: :
python3.6 scripts/2.py
OK
현재 디렉터리 전체 경로를 가져오려면 다음과 같이 하십시오.
>>import os >>print os.getcwd()
출력: "C:\Users\admin\myfolder"
현재 디렉토리 폴더 이름만 가져오려면
>>import os >>str1=os.getcwd() >>str2=str1.split('\\') >>n=len(str2) >>print str2[n-1]
출력: "myfolder"
다음과 같이 Pathlib를 사용하여 현재 스크립트를 포함하는 디렉토리를 가져올 수 있습니다.
import pathlib
filepath = pathlib.Path(__file__).resolve().parent
현재 있는 파일의 현재 디렉토리를 찾으려는 경우:
OS에 구애받지 않는 방법:
dirname, filename = os.path.split(os.path.abspath(__file__))
Python 3.4가 .pathlib
: ""을 사용하면 "Module"을 호출할 수 .pathlib.Path.cwd()
을 Path
현재 작업 디렉토리를 나타내는 오브젝트 및 기타 많은 신기능이 있습니다.
이 새로운 API에 대한 자세한 내용은 여기를 참조하십시오.
현재 디렉터리의 전체 경로를 가져오려면:
os.path.realpath('.')
#1에 대한 답변:
현재의 디렉토리를 사용하는 경우는, 다음의 순서에 따릅니다.
import os
os.getcwd()
원하는 폴더 이름만 사용하고 해당 폴더에 대한 경로가 있는 경우 다음을 수행합니다.
def get_folder_name(folder):
'''
Returns the folder name, given a full folder path
'''
return folder.split(os.sep)[-1]
2번 답변:
import os
print os.path.abspath(__file__)
현재 실행 컨텍스트의 이름만 찾는 가장 간단한 방법은 다음과 같습니다.
current_folder_path, current_folder_name = os.path.split(os.getcwd())
중인 스크립트의 를 사용할 수 .sys.argv[0]
풀 패스를 얻을 수 있습니다.
1에는 '1'을 합니다.os.getcwd() # Get working directory
★★★★★★★★★★★★★★★★★」os.chdir(r'D:\Steam\steamapps\common') # Set working directory
를 사용하는 것을 추천합니다.sys.argv[0]
는, 「2」를 참조해 주세요.sys.argv
패스하고, 이 파일(오브젝트 패스)의 을 받지 .os.chdir()
도 할 수 ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ ㄴ.
import os
this_py_file = os.path.realpath(__file__)
# vvv Below comes your code vvv #
근데 그 토막이랑sys.argv[0]
PyInstaller에서 않기 에 PyInstaller에 의해 컴파일되면 하지 않거나 합니다.이는 매직 속성이 로 설정되어 있지 않기 때문입니다.__main__
과 levelsys.argv[0]
실행 파일이 호출된 방법입니다(작업 디렉토리의 영향을 받습니다).
언급URL : https://stackoverflow.com/questions/5137497/find-the-current-directory-and-files-directory
'source' 카테고리의 다른 글
MySQL에 JSON으로 데이터 저장 (0) | 2023.01.29 |
---|---|
Python 인터프리터 내에서 파일을 실행하는 방법은 무엇입니까? (0) | 2023.01.19 |
Vue.js $scopedSlots가 Vue 인스턴스에서 작동하지 않음 (0) | 2023.01.19 |
MySQL Error 1111 - 창 함수를 중첩할 때 그룹 함수가 잘못 사용됨 (0) | 2023.01.19 |
Symfony2 번들에 상대적인 파일 접근 (0) | 2023.01.19 |