os.path.exists () всегда возвращает false - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь проверить, находится ли файл в указанном каталоге или нет.Если это так, то я бы переместить файл в другой каталог.Вот мой код

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 входных каталогов.Я скопировал этот pnin из вывода print(pnin). Когда я определяю pnin внешне, как в примере, оператор if работает.Но когда я хочу запустить функцию 'move' итеративно, если оператор никогда не выполняется.В чем может быть проблема и как я могу решить эту проблему?Вот как я вызываю функцию перемещения:

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)

Когда я пытаюсь выполнить приведенный ниже код, он не дает никакого вывода.Для цикла работает.Когда я использую print(pathnamein) в цикле for, он показывает все значения pathnamein.

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

1 Ответ

0 голосов
/ 12 сентября 2018

Вы должны использовать обратную косую черту, чтобы избежать обратной косой черты в pno строке:

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

или использовать вместо нее необработанную строку:

pno=r'D:\folder\discarded'

В противном случае \f будет считатьсяперсонаж в форме подачи.

...