Python 不断返回';无';即使';正确';预计
我不知道为什么我的Python 不断返回';无';即使';正确';预计,python,file,path,Python,File,Path,我不知道为什么我的valex.exists(path)不断返回None,我的意思是它在单独测试时工作正常,但当另一个模块调用它使用时,尽管路径名有效,它仍不断返回None 这是我的valex.exists(路径): 下面的代码(您的示例中的导入被显式化,冗余返回None Lanaru提到的被删除)在我的interwebs的这一端可以很好地工作。当我运行时,存在('C:/Python27')存在返回;当我尝试exists('C:\Python27')时也会发生同样的事情 (上述代码): 关于相对路
valex.exists(path)
不断返回None
,我的意思是它在单独测试时工作正常,但当另一个模块调用它使用时,尽管路径名有效,它仍不断返回None
这是我的valex.exists(路径)
:
下面的代码(您的示例中的导入被显式化,冗余返回None Lanaru提到的被删除)在我的interwebs的这一端可以很好地工作。当我运行时,存在('C:/Python27')
<代码>存在返回;当我尝试exists('C:\Python27')
时也会发生同样的事情
(上述代码):
关于相对路径的注释可能是正确的。这个代码片段当然没问题。下面的代码(你的例子中的导入是显式的,冗余返回None-Lanaru提到的被删除)在我的interwebs的这一部分工作得很好。当我运行时,存在('C:/Python27')
<代码>存在返回;当我尝试exists('C:\Python27')
时也会发生同样的事情
(上述代码):
关于相对路径的注释可能是正确的。这个代码片段当然没问题。有几种可能性可以解释这一点
ls
输出中的显示方式。文件名中也可能出现相似的字符;例如,西里尔字母“a”和拉丁字母“a”看起来一模一样有几种可能性可以解释这一点
ls
输出中的显示方式。文件名中也可能出现相似的字符;例如,西里尔字母“a”和拉丁字母“a”看起来一模一样小心在“路径”上通过:
print exists('C:\temp\test.txt')
>>> None
print exists(r'C:\temp\test.txt')
>>> Exists
print exists('C:\\temp\\test.txt')
>>> Exists
小心在“路径”上通过:
print exists('C:\temp\test.txt')
>>> None
print exists(r'C:\temp\test.txt')
>>> Exists
print exists('C:\\temp\\test.txt')
>>> Exists
对于这些类型的函数(我同意这样一个事实,即您的函数没有用处,并且不返回任何函数是多余的,但通常情况下),我认为使用一行if语句更清楚:
def exists(path):
return "Exists" if os.path.exists(path) else None
对于这些类型的函数(我同意这样一个事实,即您的函数没有用处,并且不返回任何函数是多余的,但通常情况下),我认为使用一行if语句更清楚:
def exists(path):
return "Exists" if os.path.exists(path) else None
您是否正在通过相对路径?在双向运行时,请检查工作目录是否相同。是否使用相对路径?
,尽管路径名有效。当然,如果它返回None(顺便说一句,returnnone
调用是多余的),那么显然不是。这是一条相对路径吗?也许这可以解释为什么从其他模块调用时它不工作。当它失败时,你调用它的路径是什么?@Lanaru最后,“return None”可能在语义上是多余的,我认为明确解释如果路径不存在会发生什么有助于代码的清晰性。exists()
函数的用途是什么?它不只是os.path.exists()
函数的副本吗?传递的是相对路径吗?在双向运行时,请检查工作目录是否相同。是否使用相对路径?,尽管路径名有效。当然,如果它返回None(顺便说一句,returnnone
调用是多余的),那么显然不是。这是一条相对路径吗?也许这可以解释为什么从其他模块调用时它不工作。当它失败时,你调用它的路径是什么?@Lanaru最后,“return None”可能在语义上是多余的,我认为明确解释如果路径不存在会发生什么有助于代码的清晰性。exists()
函数的用途是什么?它不只是os.path.exists()
函数的副本吗?无论用户输入的路径是绝对路径还是相对路径,代码都必须检查它是否存在,如果存在,然后返回一些内容,否则返回错误消息。我添加的“返回无”和“返回存在”只是一个示例。它实际上并不返回用户输入的任何路径中的内容——绝对路径或相对路径——代码只需检查它是否存在,如果存在,则返回一些内容,否则返回错误消息。我添加的“返回无”和“返回存在”只是一个示例。事实上,它不会把里面的东西还回去谢谢大家!冗余已被检查!!尽管如此,当从另一个模块调用代码时,代码仍会出现故障,它本身工作正常(我的意思是,如果您直接在Python Shell上运行它。我注意到,它不需要“输入”,而是希望从源代码直接输入。在到达调用valex.exists(path)的位置之前,我一直跟踪所有输入(通过打印),看起来一切正常。谢谢大家!冗余已经检查过了!!不过,调用时代码会出现故障