首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:找不到当前目录之外的文件

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

Stack Overflow用户
提问于 2012-05-18 11:37:13
回答 3查看 2.6K关注 0票数 0

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

即使我指定一个文件为"../dir1/dir2/ file _name“,这也是有效的。到目前为止,如果文件名包含路径,Python就不能找到任何文件(即使它们都在那里)。

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

代码语言:javascript
复制
 python prog.py          file.txt     :::: works OK

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

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

我一直收到“没有这样的文件或目录”的错误。我让Python打印出它正在寻找的文件,并且一切正常(但是它已经将../ etc变成了一个absloute路径名)。

我有一种感觉,那东西可能在什么地方被破坏了。有什么想法吗?

拉斯

EN

回答 3

Stack Overflow用户

发布于 2012-05-18 11:42:05

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

代码语言:javascript
复制
import os

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

它可以处理你当前目录中的文件,因为它不需要解析任何东西。但是shell路径需要扩展。

票数 0
EN

Stack Overflow用户

发布于 2012-05-18 11:49:47

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

票数 0
EN

Stack Overflow用户

发布于 2012-05-21 00:51:24

据我所知,Python不能理解Unix的快捷键,比如“代字号”:

代码语言:javascript
复制
~/Downloads

不会起作用,但这会起作用:

代码语言:javascript
复制
/home/Castro/Downloads

这解决了你的问题吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10646389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档