Python 中如何获取当前工作目录及源文件所在目录

Python 目录操作

获取Python 源文件所在的目录

import os 
dir_path = os.path.dirname(os.path.realpath(__file__))Code language: JavaScript (javascript)

注意: file常量的值是相对于当前工作目录的

要获取当前工作目录:

import os
cwd = os.getcwd()Code language: JavaScript (javascript)

os.path.realpath(path) :(返回path指定文件名的规范路径,消除路径中遇到的任何符号链接)
os.path.dirname(path) :(返回path路径名的目录名)
os.getcwd() :(返回当前工作目录)
os.chdir(path) :(将当前工作目录改为path)

下面代码供参考

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))Code language: PHP (php)

使用pathlib模块

pathlib模块在 Python 3.4 中引入(PEP 428 – pathlib 模块 – 面向对象的文件系统路径),使与路径相关的体验变得更好。

以下面的路径为例

pwd

/home/doudou/stack

tree

.
└── scripts
    ├── 1.py
    └── 2.py
  • 要获取当前工作目录,请使用Path.cwd()
from pathlib import Path

print(Path.cwd())  # /home/doudou/stackCode language: PHP (php)
  • 要获取脚本文件的绝对路径,请使用Path.resolve()方法:
print(Path(__file__).resolve())  # /home/doudou/stack/scripts/1.pyCode language: PHP (php)
  • 获取脚本所在目录的路径,使用.parent
print(Path(__file__).resolve().parent)  # /home/doudou/stack/scriptsCode language: PHP (php)
  • 如何在 Python 中获取当前执行文件的路径?.

请注意,Path.cwd()Path.resolve() 及其他Path方法返回路径对象,而不是字符串。

发表评论