os.path.exists()始终返回false

时间:2018-09-12 03:47:52

标签: python-3.x os.path

我正在尝试检查文件是否在指定目录中退出。如果是这样,那么我会将文件移动到另一个目录。这是我的代码

def move(pnin, pno):
    if (os.path.exists(pnin)):
        shutil.move(pnin, pno)

这是pnin和pno的示例

pnin='D:\\extracted\\extrimg_2016000055202500\\2016000055202500_65500000007006_11_6.png'
pno=D:\folder\discarded

我有8000多个输入目录。我从print(pnin)的输出中复制了此pnin。如示例中那样在外部定义pnin时,if语句起作用。但是当我想迭代地运行“移动”功能时,if语句永远不会执行。可能是什么问题,我该如何解决? 这是我调用移动函数的方式:

def clean_Data(inputDir, outDir):
    if (len(listf) > 1):
        for l in range(1,len(listf)):
            fname = hashmd5[m][l]    
            pathnamein = os.path.join(inputDir, fname)
            pathnamein = "%r"%pathnamein
            pathnameout = outfile
            move(pathnamein, pathnameout)

当我尝试下面的代码时,它没有任何输出。为循环工作。当我在for循环中使用print(pathnamein)时,它会显示pathnamein的所有值。

def move(pnin, pno):
    os.path.exists(pnin)

1 个答案:

答案 0 :(得分:0)

您应使用反斜杠在pno字符串中转义反斜杠:

pno='D:\\folder\\discarded'

或改用原始字符串:

pno=r'D:\folder\discarded'

否则,\f将被视为换页符。