Python代码中的路径问题

1、通过cd命令改变程序的当前工作目录

import os
print(os.getcwd()) # /home/youngyoung/PythonPrj
path = '/home/youngyoung/PythonPrj/mydemo'
result = os.popen("cd {} && pwd > ./result.txt".format(path))
print(result) # <os._wrap_close object at 0x7f700d8e9790>
## 会在/home/youngyoung/PythonPrj/mydemo目录下创建result.txt文件,内容是/home/youngyoung/PythonPrj/mydemo
print(os.getcwd()) # /home/youngyoung/PythonPrj

可见,os.popen会创建一个子进程,通过cd命令只能在子进程中进行路径的切换,子进程结束后,主进程中的路径并没有改变(通过os.getcwd()方法验证)。

2、通过os.chdir()改变程序的当前工作目录

import os
os.popen('pwd > ./result.txt')
## 会在/home/youngyoung/PythonPrj目录下创建result.txt文件,内容是/home/youngyoung/PythonPrj,是当前工作目录,即执行Python脚本时所在的工作目录
## 比如在命令行执行方式 PythonPrj]$ /bin/python3 /home/youngyoung/PythonPrj/mydemo/demo01.py
import os
print(os.getcwd()) # /home/youngyoung/PythonPrj
os.chdir('/home/youngyoung/PythonPrj/mytest')
print(os.getcwd()) # /home/youngyoung/PythonPrj/mytest
os.popen("pwd > ./result.txt")
print(os.getcwd()) # /home/youngyoung/PythonPrj/mytest

可见,os.chdir()会改变程序的当前工作目录。

3 、__file__为可执行脚本文件的所在路径

print(__file__) # /home/youngyoung/PythonPrj/mydemo/demo01.py,是执行的脚本文件

猜你喜欢

转载自blog.csdn.net/m0_46829545/article/details/129675804
今日推荐