簡體   English   中英

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

[英]How can I rename the latest downloaded file?

我正在使用 Selenium 自動生成報告,但是當我下載它時,最后一個數字會更改,就像它是一個序列,例如:0001849191、0001849192 等等。 我不能讓它繼續遵循順序,因為如果其他人生成報告,它可以跳過一個數字,而 python 不明白它遵循序列並且最終沒有重命名,所以我想讓它成為可能檢查上次下載的文件,然后重命名 .xlsx 文件。 這是我嘗試更多但沒有成功的代碼:

文件路徑 = r'C:\\Users\\Luis.Serpa\\Downloads'

filename = max([filepath +'\\'+ f for f in os.listdir(filepath)], key=os.path.getmtime)

可以使用 glob 和 os 模塊來獲取最新的文件。首先導入 os, glob 模塊即:

import os
import glob

然后你定義路徑。我的例子給出了任何下載文件夾的路徑。

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

首先, '\\'是一個無效字符串,因為\\用於轉義序列。 '\\\\'會給你一個帶有一個反斜杠的字符串。

但更重要的是,最好不要以這種方式構建路徑; 您應該使用os.path.join從組件中創建路徑:

filename = max([os.path.join(filepath, f) for f in os.listdir(filepath)], key=os.path.getmtime)

如果我為自己的下載文件夾提供文件filepath ,則此代碼可以很好地在我的操作系統上找到最新文件。

對於具有更好跨平台路徑支持的更現代的python3方法,您還可以使用pathlib

獲得文件路徑后,您可以使用os.rename重命名它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM