os.path.exists() 总是 returns 错误

os.path.exists() always returns false

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

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 语句起作用。但是当我想 运行 'move' 函数迭代时,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 循环正常工作。当我在 for 循环中使用 print(pathnamein) 时,它会显示 pathnamein.

的所有值
def move(pnin, pno):
    os.path.exists(pnin)

您应该使用反斜杠来转义 pno 字符串中的反斜杠:

pno='D:\folder\discarded'

或改用原始字符串:

pno=r'D:\folder\discarded'

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