python:找不到当前目录外的文件

时间:2012-05-18 03:37:13

标签: python

我正在Cygwin的命令提示符下运行python(2.7)。我通常将文件名传递给我的python代码并使用以下命令检索文件名:sys.argv [1]。我打开之前让python检查文件是否存在(使用os.path.exists)。

即使我将文件指定为“../dir1/dir2/file_name”,这也有效。截至今天,如果文件名包含路径,Python无法找到任何文件(即使它们都在那里)。

例如:对于名为dir_1的目录中的prog.py

 python prog.py          file.txt     :::: works OK

 python prog.py ../dir_1/file.txt     :::: Fails

 >pwd
  ......../dir_1

我一直收到“没有这样的文件或目录”的错误。我让Python打印出它正在寻找的文件,并且它具有一切正常(但它将../ etc转换为绝对路径名)。

我有一种感觉,某些地方可能已经腐败了。有什么想法吗?

拉​​斯

3 个答案:

答案 0 :(得分:0)

您需要解析对适当扩展路径的相对引用。

import os

relative = "../"
print os.path.abspath(relative)
# /Users/jdi

它可以正常使用当前目录中的文件,因为它不需要解决任何问题。但是需要扩展shell路径。

答案 1 :(得分:0)

os.path.exists()不检查您作为参数传递的路径是否存在?你想看看文件是否存在?

答案 2 :(得分:0)

我的理解是Python不理解像'tilde'这样的Unix快捷方式:

~/Downloads

不行 但这会:

/home/Castro/Downloads

这会解决您的问题吗?

相关问题