Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不断返回';无';即使';正确';预计_Python_File_Path - Fatal编程技术网

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')
时也会发生同样的事情

(上述代码):


关于相对路径的注释可能是正确的。这个代码片段当然没问题。

有几种可能性可以解释这一点

  • python解释器可能没有权限访问文件所在的文件夹,因此无法查看该文件。或者,如果系统使用ACL,则ACL中可能有一条规则阻止解释器查看文件
  • 也许你的代码没有试图打开你认为它是什么。在打开文件进行验证之前,请打印或记录文件名
  • 您在文件资源管理器或ls命令中看到的文件名,或任何看起来与代码所要查找的内容匹配但实际上不匹配的内容。例如,在Unix中,退格控件可能出现在文件名中,并扭曲它们在
    ls
    输出中的显示方式。文件名中也可能出现相似的字符;例如,西里尔字母“a”和拉丁字母“a”看起来一模一样

  • 有几种可能性可以解释这一点

  • python解释器可能没有权限访问文件所在的文件夹,因此无法查看该文件。或者,如果系统使用ACL,则ACL中可能有一条规则阻止解释器查看文件
  • 也许你的代码没有试图打开你认为它是什么。在打开文件进行验证之前,请打印或记录文件名
  • 您在文件资源管理器或ls命令中看到的文件名,或任何看起来与代码所要查找的内容匹配但实际上不匹配的内容。例如,在Unix中,退格控件可能出现在文件名中,并扭曲它们在
    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)的位置之前,我一直跟踪所有输入(通过打印),看起来一切正常。谢谢大家!冗余已经检查过了!!不过,调用时代码会出现故障