首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在windows python中重命名/复制

在windows python中重命名/复制
EN

Stack Overflow用户
提问于 2014-09-19 05:05:09
回答 4查看 129关注 0票数 0

我试图复制和重命名一些PDF的绝对路径。

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

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

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

是否有更多的pythonic方法来完成它,然后将字符串拆分成一个列表,并在最后一个元素上添加ORG之后重新加入它们?

在windows 8上使用python2.7。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-19 07:10:54

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

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

代码语言:javascript
复制
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)

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

代码语言:javascript
复制
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)

我在Mac上用Python2.7.7测试了这个脚本,但我认为它也应该在Windows上很好地工作。

票数 1
EN

Stack Overflow用户

发布于 2014-09-19 05:11:07

你可以试试

代码语言:javascript
复制
import os

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

os.rename(filename, newfilename)
票数 0
EN

Stack Overflow用户

发布于 2014-09-19 07:16:31

将字符串拆分成一个列表并重新连接(在从列表中删除'andrew‘并将'ORG’前缀为最后一个元素之后)是非常Pythonic的。这是一个明确而明显的方法。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25926742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档