Python os.path.isfile无法使用if语句

Python os.path.isfile无法使用if语句,python,python-3.x,Python,Python 3.x,我想创建一个代码来帮助我复制类似的jpg文件,所以知道这些文件是否存在对我来说很重要 为此,我写下了以下代码: from os import path import shutil oldfile = input("Which file do you want to copy? write that in numbers : ") fadress = input("What is your file adress : ") newfadress = input("Where do you w

我想创建一个代码来帮助我复制类似的jpg文件,所以知道这些文件是否存在对我来说很重要

为此,我写下了以下代码:

from os import path
import shutil



oldfile = input("Which file do you want to copy? write that in numbers : ")
fadress = input("What is your file adress : ")
newfadress = input("Where do you want to copy your file : ")

f_num2 = oldfile.split('-')


for each_num in f_num2:
      print(each_num)
      newname = '_DSC{}.JPG'.format(each_num)
      new2 = 'DSC_{}.JPG'.format(each_num)
      if path.isfile(fadress + '\\' + newname):
          shutil.copy(fadress + '\\' + newname, newfadress)
          print(newname)
      elif path.isfile(fadress + '\\' + new2):
          shutil.copy(fadress + '\\' + new2, newfadress)
          print(new2)
它在if语句之前工作。但是if语句似乎没有获得os.path.isfile函数的输出。我应该怎么做才能使这段代码工作?

您能在使用fadress之前去掉它并使用path.join连接路径吗

或者在阅读fadress时将其剥去


path.isfile函数的工作方式很有魅力。你的道路可能是错误的。我建议您打印出fadress+'\\'+newname,看看它是否真的是您所期望的。请尝试path.isfilepath.joinfadress.strip,newname,您能给我们任何调试输出吗?添加一个带有print fadress+'\\'+newname和print path.isfilefadress+'\\'+newname的else要成为一个正确的文件,这将创建一个文件,以便在显示代码分支之前知道它确实存在。否则,它需要在运行它的机器上进行设置,然后才能进行测试,这使得它既不完整也不可验证。删除用户输入并使用硬编码值,或者让Python使用tempfile模块生成文件名,这也是实现最小化的步骤。是的,从STDIN中拖出新行可能是个问题
path.isfile(path.join(fadress.strip(), newname))
fadress = input("What is your file adress : ").strip()