我的桌面上有很多pdfs。我想运行python脚本将所有这些pdfs移动到一个文件夹中。
我正在测试一个脚本,我发现目标文件夹中已经存在一个文件。运行时的脚本表示该文件已经存在。
在这个场景中,如果文件存在,我想重写它。我该怎么叫舒蒂尔改写。
import os
import shutil
import glob
src = '/Users/myusername/Desktop'
dest = '/Users/myusername/Desktop/PDF'
os.chdir(src)
for i in glob.glob("*.pdf"):
print(i)
shutil.move(i,dest)shutil.Error:目标路径'/Users/myusername/Desktop/PDF/test.pdf‘已经存在
发布于 2022-12-04 21:46:19
要告诉shutil.move()函数覆盖目标文件(如果它已经存在),可以使用shutil.move()函数的copy_function参数并将其设置为shutil.copy2()函数。这将导致shutil.move()函数使用shutil.copy2()函数将文件复制到目标,目标能够覆盖现有文件。
下面是一个示例,说明如何修改代码,以便在目标文件已经存在的情况下使用shutil.copy2()函数覆盖目标文件:
import os
import shutil
import glob
src = '/Users/myusername/Desktop'
dest = '/Users/myusername/Desktop/PDF'
os.chdir(src)
for i in glob.glob("*.pdf"):
print(i)
shutil.move(i, dest, copy_function=shutil.copy2)或者,如果目标文件已经存在,可以使用os.replace()函数移动该文件并覆盖它。此函数可在Python3.3及更高版本中使用。下面是一个示例,说明如何使用os.replace()函数来移动文件并覆盖目标文件(如果该文件已经存在):
import os
import glob
src = '/Users/myusername/Desktop'
dest = '/Users/myusername/Desktop/PDF'
os.chdir(src)
for i in glob.glob("*.pdf"):
print(i)
os.replace(i, os.path.join(dest, i))注意,os.replace()函数在Python2.x中不可用,因此如果使用Python2.x,则需要使用shutil.move()函数,并将copy_function参数设置为shutil.copy2()函数。
https://stackoverflow.com/questions/74681196
复制相似问题