将文件移动到一个新文件夹,该文件夹在Python中恰好具有相同的文件名
在我的脚本中,我很少遇到这样的问题:我试图将一个文件移动到这个新文件夹中,而这个新文件夹中已经有一个同名的文件,但它就是这样发生的。因此,我当前的代码使用shutil.move方法,但它会因重复的文件名而出错。我希望我可以使用一个简单的if语句来检查源代码是否已经在目标代码中,并稍微更改名称,但也无法完成这项工作。我还读了另一篇文章,其中使用了distutils模块来解决这个问题,但这篇文章给了我一个属性错误。人们对此还有其他想法吗 我在下面添加了一些示例代码。“C:\data\new”目录中已经有一个名为“file.txt”的文件。给定的错误是目标路径已存在将文件移动到一个新文件夹,该文件夹在Python中恰好具有相同的文件名,python,Python,在我的脚本中,我很少遇到这样的问题:我试图将一个文件移动到这个新文件夹中,而这个新文件夹中已经有一个同名的文件,但它就是这样发生的。因此,我当前的代码使用shutil.move方法,但它会因重复的文件名而出错。我希望我可以使用一个简单的if语句来检查源代码是否已经在目标代码中,并稍微更改名称,但也无法完成这项工作。我还读了另一篇文章,其中使用了distutils模块来解决这个问题,但这篇文章给了我一个属性错误。人们对此还有其他想法吗 我在下面添加了一些示例代码。“C:\data\new”目录中已
import shutil
myfile = r"C:\data\file.txt"
newpath = r"C:\data\new"
shutil.move(myfile, newpath)
您可以检查该文件是否存在,如果存在,则将其删除
import os
import shutil
myfile = r"C:\data\file.txt"
newpath = r"C:\data\new"
# if check existence of the new possible new path name.
check_existence = os.path.join(newpath, os.path.basename(myfile))
if os.path.exists(check_existence):
os.remove(check_existence)
shutil.move(myfile, newpath)
您可以检查该文件是否存在,如果存在,则将其删除
import os
import shutil
myfile = r"C:\data\file.txt"
newpath = r"C:\data\new"
# if check existence of the new possible new path name.
check_existence = os.path.join(newpath, os.path.basename(myfile))
if os.path.exists(check_existence):
os.remove(check_existence)
shutil.move(myfile, newpath)
您可以检查该文件是否存在,如果存在,则将其删除
import os
import shutil
myfile = r"C:\data\file.txt"
newpath = r"C:\data\new"
# if check existence of the new possible new path name.
check_existence = os.path.join(newpath, os.path.basename(myfile))
if os.path.exists(check_existence):
os.remove(check_existence)
shutil.move(myfile, newpath)
您可以检查该文件是否存在,如果存在,则将其删除
import os
import shutil
myfile = r"C:\data\file.txt"
newpath = r"C:\data\new"
# if check existence of the new possible new path name.
check_existence = os.path.join(newpath, os.path.basename(myfile))
if os.path.exists(check_existence):
os.remove(check_existence)
shutil.move(myfile, newpath)
在Python3.4中,您可以尝试该模块。这只是一个示例,因此您可以将其改写为更高效/使用变量:
import pathlib
import shutil
myfile = r"C:\data\file.txt"
newpath = r"C:\data\new"
p = pathlib.Path("C:\data\new")
if not p.exists():
shutil.move(myfile, newpath)
#Use an else: here to handle your edge case.
在Python3.4中,您可以尝试该模块。这只是一个示例,因此您可以将其改写为更高效/使用变量:
import pathlib
import shutil
myfile = r"C:\data\file.txt"
newpath = r"C:\data\new"
p = pathlib.Path("C:\data\new")
if not p.exists():
shutil.move(myfile, newpath)
#Use an else: here to handle your edge case.
在Python3.4中,您可以尝试该模块。这只是一个示例,因此您可以将其改写为更高效/使用变量:
import pathlib
import shutil
myfile = r"C:\data\file.txt"
newpath = r"C:\data\new"
p = pathlib.Path("C:\data\new")
if not p.exists():
shutil.move(myfile, newpath)
#Use an else: here to handle your edge case.
在Python3.4中,您可以尝试该模块。这只是一个示例,因此您可以将其改写为更高效/使用变量:
import pathlib
import shutil
myfile = r"C:\data\file.txt"
newpath = r"C:\data\new"
p = pathlib.Path("C:\data\new")
if not p.exists():
shutil.move(myfile, newpath)
#Use an else: here to handle your edge case.
一些示例代码,错误?请添加演示问题的代码。这应该很小,可以单独运行,并重现问题。这使得开始寻找解决方案变得容易得多,也将提高答案的数量、质量和清晰度。感谢提示人员,我应该在这方面做得更好。一些示例代码,错误?请添加演示问题的代码。这应该很小,可以单独运行,并重现问题。这使得开始寻找解决方案变得容易得多,也将提高答案的数量、质量和清晰度。感谢提示人员,我应该在这方面做得更好。一些示例代码,错误?请添加演示问题的代码。这应该很小,可以单独运行,并重现问题。这使得开始寻找解决方案变得容易得多,也将提高答案的数量、质量和清晰度。感谢提示人员,我应该在这方面做得更好。一些示例代码,错误?请添加演示问题的代码。这应该很小,可以单独运行,并重现问题。这使得开始寻找解决方案变得容易得多,同时也将提高答案的数量、质量和清晰度。感谢那些给我小费的家伙,我应该在这方面做得更好。谢谢Jim,如果我使用3.4,我会使用它。@Jim,我不认为这实际上解决了OP的问题:在OP的例子中,
newpath
是一个始终存在的目录。问题是该目录中有一个名为file.txt
的文件,需要检查该文件是否存在。除此之外,回答得很好。@CodyPiersall谢谢你指出这一点。我自己仍在学习Python,因此我感谢您的反馈。我将把答案留在这里,因为如果人们偶然发现它,它可能会对Python3有用。我还对你的答案投了赞成票。谢谢Jim,如果我使用3.4,我会使用。@Jim,我不认为这实际上解决了OP的问题:在OP的示例中,newpath
是一个始终存在的目录。问题是该目录中有一个名为file.txt
的文件,需要检查该文件是否存在。除此之外,回答得很好。@CodyPiersall谢谢你指出这一点。我自己仍在学习Python,因此我感谢您的反馈。我将把答案留在这里,因为如果人们偶然发现它,它可能会对Python3有用。我还对你的答案投了赞成票。谢谢Jim,如果我使用3.4,我会使用。@Jim,我不认为这实际上解决了OP的问题:在OP的示例中,newpath
是一个始终存在的目录。问题是该目录中有一个名为file.txt
的文件,需要检查该文件是否存在。除此之外,回答得很好。@CodyPiersall谢谢你指出这一点。我自己仍在学习Python,因此我感谢您的反馈。我将把答案留在这里,因为如果人们偶然发现它,它可能会对Python3有用。我还对你的答案投了赞成票。谢谢Jim,如果我使用3.4,我会使用。@Jim,我不认为这实际上解决了OP的问题:在OP的示例中,newpath
是一个始终存在的目录。问题是该目录中有一个名为file.txt
的文件,需要检查该文件是否存在。除此之外,回答得很好。@CodyPiersall谢谢你指出这一点。我自己仍在学习Python,因此我感谢您的反馈。我将把答案留在这里,因为如果人们偶然发现它,它可能会对Python3有用。我还对你的答案投了赞成票。