首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何重命名最新下载的文件?

如何重命名最新下载的文件?
EN

Stack Overflow用户
提问于 2021-07-29 02:26:53
回答 2查看 43关注 0票数 0

我正在使用Selenium自动生成一个报告,但是当我下载它时,最后一个数字会发生变化,就像它是一个序列一样,例如: 0001849191、0001849192等等。我不能让它继续遵循顺序,因为如果其他人生成报告,它可以跳过一个数字,而python不理解它遵循了顺序,最终没有重命名,所以我想让它能够检查最后下载的文件是什么,然后他重命名.xlsx文件。下面是我尝试更多但没有成功的代码:

filepath = r'C:\Users\Luis.Serpa\Downloads‘

filename =max(文件路径+'\'+ f表示os.listdir中的f(文件路径),key=os.path.getmtime)

EN

回答 2

Stack Overflow用户

发布于 2021-07-28 19:10:45

您可以使用glob和os模块来获取最新的file.First导入os、glob模块,即:

代码语言:javascript
运行
复制
import os
import glob

然后你定义path.My示例,给出任何一个下载文件夹的路径。

代码语言:javascript
运行
复制
home = os.path.expanduser('~')
path = os.path.join(home, 'Downloads')

"*“是必需的。

代码语言:javascript
运行
复制
path_a = path + "/*"
list_of_files = glob.glob(path_a) # * means all if need specific format then *.csv
latest_file = max(list_of_files, key=os.path.getctime)

这是新文件的名称

代码语言:javascript
运行
复制
new_file = os.path.join(path, "b.kml")
print(latest_file)
#prints a.txt which was latest file i created
os.rename(latest_file, new_file)

文件名变为b.kml

票数 1
EN

Stack Overflow用户

发布于 2021-07-29 02:38:23

首先,'\'是一个无效的字符串,因为\用于转义序列。'\\'会给你一个只有一个反斜杠的字符串。

但更重要的是,最好不要以这种方式构造路径;您应该使用os.path.join在组件之外创建路径:

代码语言:javascript
运行
复制
filename = max([os.path.join(filepath, f) for f in os.listdir(filepath)], key=os.path.getmtime)

如果我给我自己的downloads文件夹一个filepath,这段代码可以很好地在我的操作系统上找到最新的文件。

对于具有更好的跨平台路径支持的更现代的python3方法,您还可以使用pathlib

有了文件的路径后,可以使用os.rename对其进行重命名。

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

https://stackoverflow.com/questions/68565656

复制
相关文章

相似问题

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