1

我对Python中CWD和导入路径之间的区别有点困惑。

据我了解:

C:\temp> python C:\...\PyTools\ex.py

脚本文件位于 C:...\PP4E\Tools\ 中,但脚本处理位于 C:\temp 中的文件?还是我误会了什么?

基本上我有一个从某个目录运行的脚本,我需要它来处理另一个目录中的文件。

C:\temp> python C:\...\PyTools\find.py *.py C:\...\Directory

再次据我了解,该脚本可以访问 PyTools 目录中的文件并处理 \Directory 中的文件。但是 CWD 仍然是 \temp?

那么 \temp 是否添加到 python 路径中?CWD 是否曾经被添加到 python 路径中?我有点困惑,如果有人可以向我解释这一点,我将非常感激。谢谢。

4

1 回答 1

0

Python 的搜索路径——它在其中查找以import语句命名的模块——包括PYTHONPATH环境变量的内容、 的值sys.path以及运行脚本所在的目录。默认情况下,您当前的工作目录 ( cwd) 绝不是 Python 搜索路径的一部分。

当你cwd开始你的 Python 脚本时,你的脚本就是cwd你的;这意味着文件操作,例如open(),将引用您当前目录中的文件,而没有任何路径限定符。例如,如果您在 中c:\temp,并且您运行 Python 脚本,并且您的脚本执行此操作...

fd = open('myfile.txt')

...然后你会打开c:\temp\myfile.txt

如果要打开另一个目录中的文件,可以提供以下路径的完整路径open

fd = open('c:\\anotherdir\\myfile.txt')

或者你可以调用os.chdir()你的代码:

os.chdir('c:\\anotherdir')
fd = open('myfile.txt')
于 2013-01-15T18:47:25.633 回答