Python打开文件- 是否需要文件的完整路径?

3

我看到的有关在Python中打开文件的所有示例都类似于这样:

myFile = open('somefilenamehere', 'r')

当我只输入文件名时,它从来不对我起作用...你应该始终放入该文件所在的完整目录路径。

myFile = open('C:\\blah\\blah\\somefilenamehere', 'r')

有人试过只输入文件名吗?他会正常工作吗?


3
是的,Python 脚本有当前工作目录。如果您要打开的文件在当前工作目录中,则可以正常工作;否则,您需要提供其路径(相对或绝对均可)。您还可以使用 os 模块更改当前工作目录。 - Ffisegydd
如果您的 Python文件 (*.py)要打开的文件在同一个目录中,则可以正常工作。 - Prerak Sola
@PrerakSola,那不是很精确。进程工作目录并不总是(而且很常见不是)与脚本文件目录相同。 - bereal
显然它不起作用,但由于我们的路径不同,甚至尝试给出路径也没有意义。 - jester112358
顺便提一下,如果您需要在脚本中指定Windows路径,我建议您使用原始字符串来指定路径名,例如myFile = open(r'C:\blah\blah\somefilenamehere', 'r') - davidedb
2个回答

4

这与工作目录的过程有关,而不是与脚本所在位置有关。例如,您有一个名为cat.py的脚本,像下面这样:

import sys
with open(sys.argv[1]) as fp:
    print fp.read()

然后你需要进行以下操作:

$ cd /tmp
$ echo 12345 > test.txt
$ python /path/to/cat.py test.txt
12345

无论脚本的位置在哪里,这都可以正常工作,因为工作目录是 /tmp且脚本不会改变它。

-1

这是一个相对路径。因此,如果您在同一目录中运行脚本,则只需放置文件名即可。


如果我在脚本中使用os.chdir更改工作目录会发生什么? - Ffisegydd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接