我正在使用Selenium自动生成一个报告,但是当我下载它时,最后一个数字会发生变化,就像它是一个序列一样,例如: 0001849191、0001849192等等。我不能让它继续遵循顺序,因为如果其他人生成报告,它可以跳过一个数字,而python不理解它遵循了顺序,最终没有重命名,所以我想让它能够检查最后下载的文件是什么,然后他重命名.xlsx文件。下面是我尝试更多但没有成功的代码:
filepath = r'C:\Users\Luis.Serpa\Downloads‘
filename =max(文件路径+'\'+ f表示os.listdir中的f(文件路径),key=os.path.getmtime)
发布于 2021-07-28 19:10:45
您可以使用glob和os模块来获取最新的file.First导入os、glob模块,即:
import os
import glob然后你定义path.My示例,给出任何一个下载文件夹的路径。
home = os.path.expanduser('~')
path = os.path.join(home, 'Downloads')"*“是必需的。
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)这是新文件的名称
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
发布于 2021-07-29 02:38:23
首先,'\'是一个无效的字符串,因为\用于转义序列。'\\'会给你一个只有一个反斜杠的字符串。
但更重要的是,最好不要以这种方式构造路径;您应该使用os.path.join在组件之外创建路径:
filename = max([os.path.join(filepath, f) for f in os.listdir(filepath)], key=os.path.getmtime)如果我给我自己的downloads文件夹一个filepath,这段代码可以很好地在我的操作系统上找到最新的文件。
对于具有更好的跨平台路径支持的更现代的python3方法,您还可以使用pathlib
有了文件的路径后,可以使用os.rename对其进行重命名。
https://stackoverflow.com/questions/68565656
复制相似问题