| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 컴퓨터공학
- 네트워크
- 데이터베이스
- 데이터구조
- 데이터분석
- 네트워크보안
- 버전관리
- 알고리즘
- 보안
- 빅데이터
- 웹개발
- 데이터과학
- 딥러닝
- 자료구조
- 프로그래밍
- 디자인패턴
- Yes
- 컴퓨터비전
- 파이썬
- 사이버보안
- 인공지능
- I'm Sorry
- 머신러닝
- 자바스크립트
- 소프트웨어공학
- 프로그래밍언어
- 클라우드컴퓨팅
- springboot
- 소프트웨어
- 컴퓨터과학
- Today
- Total
스택큐힙리스트
현재 스크립트 디렉토리를 올바르게 결정하는 방법은 무엇인가요? [중복됨] 본문
이 질문은 이미 답변이 있습니다.
How do I get the path and name of the file that is currently executing?
1. 답안
2. 인사말
3. 이름
4. 나이
5. 생년월일
6. 성별
7. 주소
8. 전화번호
9. 이메일
10. 직업
11. 학교
12. 전공
13. 취미
14. 가족 구성원
15. 결혼 여부
16. 자녀 수
17. 애완동물 유무
18. 운동
19. 건강
20. 옷 크기
21. 혈액형
22. 좋아하는 음식
23. 여행 경험
24. 즐겨보는 TV 프로그램
25. 자신이 소개하고 싶은 것
26. 기타
15일 전에 닫혔습니다.
제가 파이썬에서 현재 스크립트 디렉토리를 확인하는 가장 좋은 방법을 살펴보고 싶습니다.
나는 파이썬 코드를 호출하는 많은 방법 때문에 좋은 해결책을 찾기 어렵다는 것을 발견했다.
여기에 몇 가지 문제가 있습니다.
만약 스크립트가 exec , #$#&$^&$$$로 실행된다면 __file__는 정의되지 않습니다.
__module__은 모듈에서만 정의됩니다.
사용 사례:
./myfile.py
python myfile.py
./somedir/myfile.py
python somedir/myfile.py
execfile('myfile.py') (다른 디렉토리에 위치하고 다른 현재 디렉토리를 가질 수있는 다른 스크립트에서)
저는 완벽한 해결책은 없다는 것을 알지만, 대부분의 경우를 해결하는 가장 좋은 방법을 찾고 있습니다.
가장 자주 사용되는 방법은 os.path.dirname(os.path.abspath(__file__)) 이지만, 다른 스크립트에서 exec() 으로 실행하는 경우에는 실제로 작동하지 않습니다.
경고
현재 디렉토리를 사용하는 모든 해결책은 실패할 것입니다. 이는 스크립트 호출 방식에 따라 다를 수 있거나 실행 중인 스크립트 내에서 변경될 수 있습니다.
답변 1
os.path.dirname(os.path.abspath(__file__))
당신이 받을 수 있는 최상의 것입니다.
일반적으로 exec / execfile으로 스크립트를 실행하는 것은 일반적이지 않습니다. 대개 모듈 인프라를 사용하여 스크립트를로드해야합니다. 이러한 방법을 사용해야하는 경우에는 전달하는 globals에서 __file__을 설정하여 스크립트가 해당 파일 이름을 읽을 수 있도록합니다.
실행된 코드에서 파일 이름을 가져오는 다른 방법은 없습니다 : 알 수 있듯이 CWD는 완전히 다른 위치에 있을 수 있습니다.
답변 2
본격적인 프로그래밍을 시작하면서, 현재 스크립트 디렉토리를 결정하는 것은 중요한 문제입니다. 이것은 코드를 간단하게하고 관리하기 쉽게하기 위해 필수적인 것이기 때문입니다.그러나 어떻게 현재 스크립트 디렉토리를 적절하게 결정할 수 있을까요? 많은 방법이 있지만, 이 문제를 해결하기 위해 가장 일반적인 방법은 파이썬 내장 모듈 중 하나인 'os'를 사용하는 것입니다.
'os' 모듈은 현재 작업 디렉토리, 절대 경로 등을 결정하는 데 사용됩니다. 이 모듈은 'getcwd()' 메서드를 사용하여 현재 작업 디렉토리의 경로를 반환하고 'abspath()' 메서드를 사용하여 현재 스크립트의 절대 경로를 얻을 수 있습니다.
예를 들어, 다음과 같은 코드를 작성하여 현재 스크립트의 디렉토리를 얻을 수 있습니다.
```
import os
current_script_directory = os.path.abspath(os.path.dirname(__file__))
```
다른 방법으로는 'sys' 모듈을 사용하는 것입니다. 'sys' 모듈은 파이썬 인터프리터와 관련된 함수와 변수를 제공합니다. 'sys.argv[0]'은 현재 스크립트의 이름을 포함한 전체 경로를 반환합니다. 그러나 'sys.argv[0]'은 현재 디렉토리의 경로가 아니라 현재 스크립트의 경로를 반환한다는 점을 유의해야 합니다.
결론적으로, 파이썬에서 현재 스크립트 디렉토리를 결정하는 방법은 여러 가지가 있지만, 가장 일반적인 방법은 'os' 모듈을 사용하는 것입니다. 이를 통해 간단하게 코드를 작성하고 관리할 수 있습니다.