为了账号安全,请及时绑定邮箱和手机立即绑定

如何重命名某个目录中的文件?

如何重命名某个目录中的文件?

白猪掌柜的 2022-09-27 15:22:41
我希望每个人都能保持安全和健康。你能帮我更改某个目录中的文件名吗?我正在为RDA编写一个脚本,以便从本网站下载文档,当我从本网站下载这些文件时,文件名没有模式,它完全是随机的。所以我想把这些文件重命名为某种模式。例如第一次下载的文件名:文件下载.pdf重命名为:1234567.pdf第二次下载的文件名:提取页.pdf重命名为:1234568.pdf在参数中设置了新名称,因此该部分很好,但是由于我不知道下载的文件名是什么,因此我无法将此文件名更改为新名称。因此,我想到的是对于每个下载的文件,将其放在此文件夹中而没有任何文件,并且每当任何文件位于此文件夹中时,它都会重命名该文件并将其放在不同的文件夹中。下面是我写的代码;filepath = "originalFilePath/downloadedfile.pdf"if os.path.isfile(filepath):    os.rename(r'originalFilePath/downloadedfile.pdf',              'newFilePath' + str(parameter['search_number']) + '.pdf')但是我想更改文件名,无论下载的文件名是什么。请帮忙,非常感谢!!
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

我认为你的想法是完全正确的。


首先,在下载任何内容之前,您将列出文件夹中的所有文件名,将该列表存储在变量中,比方说。然后,您开始从Web下载文件,之后,再次列出所有文件名并存储在第二个列表中。现在,您将比较2个列表,并知道哪些文件是新的(刚刚下载)。然后,您只需循环访问这些新文件,然后以所需的模式对其进行重命名即可。我会在一分钟内添加代码current_files


import glob

current_files = glob.glob("/path/Downloads/*.pdf")

# ['path/Downloads/abc.pdf', 'path/Downloads/xyz.pdf']


# your code to download files from the web


new_files = set(glob.glob("/path/Downloads/*.pdf")) - set(current_files)

# ['path/Downloads/just_downloaded1.pdf', 'path/Downloads/just_downloaded2.pdf']


for file in new_files:

    #do the rename code here to your new files


查看完整回答
反对 回复 2022-09-27
?
达令说

TA贡献1821条经验 获得超6个赞

你的问题并不完全清楚。

无论如何,我认为您的代码有问题,您必须在 之后添加。/newFilePath


查看完整回答
反对 回复 2022-09-27
?
皈依舞

TA贡献1851条经验 获得超3个赞

使用 os.重命名(旧、新)。

os.renames旧的新的)递归目录或文件重命名功能。工作原理类似于 rename(),除了首先尝试创建使新路径名良好所需的任何中间目录。重命名后,将使用 removedirs() 修剪掉与旧名称最右边的路径段相对应的目录。

引用

https://docs.python.org/3/library/os.html


查看完整回答
反对 回复 2022-09-27
  • 3 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信