问题描述
我正在生成多个pdf页面,所以每次生成pdf文件时,我都想对其重命名并保存该特定文件。但是我的代码在生成文件时会重命名文件,但会删除早期的文件。 下面是我的脚本:
os.chdir(new_path)
files = filter(os.path.isfile,os.listdir(new_path))
files = [os.path.join(new_path,f) for f in files] # add path to each file
files.sort(key=lambda x: os.path.getmtime(x))
newest_file = files[-1]
# os.path.join(new_path,search + str(photoid) + str(seaid_destination) + ".pdf",newest_file)
os.rename(newest_file,search + str(photoid) + str(seaid_destination) + ".pdf")
它可以正确地重命名,但是会删除以前的文件,因此如何保存此重命名的文件。我尝试了os.path.join
,但是文件未保存。
要保存的文件为newest_file
最初生成的文件是Google.pdf
,所以我想将其重命名为1.pdf
并将该文件保存在特定的文件夹中。
解决方法
在大多数操作系统中,重命名文件或目录意味着将它们移动到另一个位置。这就是* nix操作系统使用mv
(移动)命令的原因。
在这种情况下,如果您希望保留原始文件,则无需重命名它们,而是可以使用新名称将它们复制到新目录中。
使用shutil
模块复制文件的示例:
import shutil
shutil.copyfile('originalfile.pdf','newfile.pdf')