我不知道为什么我的valex.exists(path)
一直返回None
,我的意思是它在自己测试时工作正常但是当另一个模块调用它时,它会一直返回None
尽管路径名称有效。
这是我的valex.exists(path)
:
def exists(path):
# I've imported os already
if os.path.exists(path):
return "Exists"
else:
return None
答案 0 :(得分:1)
对于这些类型的函数(我同意你的函数没用,返回None是多余的但通常是这样),我认为使用单行if语句更清楚:
def exists(path):
return "Exists" if os.path.exists(path) else None
答案 1 :(得分:0)
下面的代码(你的示例显示导入和冗余返回无Lanaru提到删除)在我的网络结束时工作正常。当我运行exists('C:/Python27')
时。 Exists
被退回;当我尝试exists('C:\Python27')
时会发生同样的事情。
(上述代码):
import os
def exists(path):
if os.path.exists(path):
return "Exists"
关于相对路径的评论可能是正确的。这段代码片段当然可以。
答案 2 :(得分:0)
有几种可能性可以解释这一点。
ls
命令中看到的文件名或其他任何内容可能与您的代码所查找的内容相匹配,但实际上并不匹配。例如,在Unix中,退格控件可能出现在文件名中,并扭曲它们在ls
输出中的显示方式。类似外观的字符也可以出现在文件名中;例如,西里尔语'a'与拉丁语'a'看起来相同。答案 3 :(得分:0)
小心你如何传递'路径':
print exists('C:\temp\test.txt')
>>> None
print exists(r'C:\temp\test.txt')
>>> Exists
print exists('C:\\temp\\test.txt')
>>> Exists