windowspython中的重命名/复制

2024-10-02 00:28:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试复制和重命名一些具有绝对路径的PDF。你知道吗

即:c:\users\andrew\pdf\p.pdf被复制到c:\users\pdf\ORGp.pdf

在目录p.pdfORGp.pdf中保留两个文件

我在过去的一个小时里一直在研究这个问题,但我似乎无法解决它。你知道吗

有没有一种更像python的方法来完成这个任务,然后将字符串拆分成一个列表,并在最后一个元素上添加ORG之后重新加入它们?你知道吗

在Windows8上使用Python2.7。你知道吗


Tags: 文件方法字符串org目录元素列表pdf
3条回答

你可以试试

import os

.......some logic.....

os.rename(filename, newfilename)

你的问题有点模棱两可,但我还是会尽力回答的。你知道吗

这是一个python代码示例,它将在脚本开头指定的新名称下复制特定文件夹下的所有文件:

import os
import shutil
folder_name = "c:\\users\\andrew\\pdf"
for root_folder, _, file_names in os.walk(folder_name):
    for file_n in file_names:
        new_name = os.path.join(root_folder, "ORG" + file_n)
        old_name = os.path.join(root_folder, file_n)
        print "We will copy at ", new_name, old_name
        shutil.copyfile(old_name, new_name)

此代码将复制并重命名绝对文件路径列表:

import os
import shutil
files_to_rename = ["c:\\users\\andrew\\pdf\\p.pdf", "c:\\users\\andrew\\pdf2\\p2.pdf"]

for file_full_path in files_to_rename:
    folder_n, file_n = os.path.split(file_full_path)
    new_name = os.path.join(folder_n, "ORG" + file_n)
    print "We will copy at ", new_name, file_full_path
    shutil.copyfile(file_full_path, new_name)

我在MacOS上用Python2.7.7测试了这个脚本,但我认为它在Windows上也可以很好地工作。你知道吗

将字符串拆分为一个列表并重新连接(在从列表中删除'andrew'并在最后一个元素前面加上'ORG'之后)是一个非常python的方法。这是一个明确而明显的方法。你知道吗

您可以使用标准的strlist方法来完成。但是,os.path模块中有各种专用的文件路径操作函数,您应该熟悉这些函数,但是当您确定正在处理的所有文件名都正常时,strlist方法就可以了。os.path还有其他有用的与文件相关的功能:可以检查文件是否存在,是文件还是目录,获取文件的时间戳等

要在生成新名称后实际复制文件,请使用shutil.copyfile()。您可能还希望首先使用os.path.exists()检查文件是否已经存在。不幸的是,一些元数据在这个过程中丢失了,例如文件所有者,如shutil文档中的警告所述。你知道吗

相关问题 更多 >

    热门问题