重命名下载的文件

重命名下载的文件

本文介绍了重命名下载的文件 selenium的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 selenium 从此页面自动下载 csv 格式的文件:

I'm using selenium to automatically download files in csv format from this page:

https://catalog.data.gov/dataset?tags=crime

这是我正在使用的代码:

This is the code I'm using:

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", '/home/luis/Desktop/data/')
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")

driver = webdriver.Firefox(firefox_profile=profile)
driver.get(url)
time.sleep(2)
download_button = driver.find_element_by_xpath('//*[@id="content"]/div[2]/div[2]/section[1]/div[2]/ul/li[14]/div/ul/li[1]/a')
download_button.click()

这里设置了下载文件夹:

Here the download folder is set:

profile.set_preference("browser.download.dir", '/home/luis/Desktop/data/')

如何选择保存文件的名称?可以是下载时定义的名称吗?

How can I select the name with which the file is saved?Can be the name defined at the moment of the download?

我的意思是这样的:

For name in names:
    download_button = driver.find_element_by_xpath('//*[@id="content"]/div[2]/div[2]/section[1]/div[2]/ul/li[14]/div/ul/li[{}]/a'.format(name))
    download_button.click()
    save_file_as(name)

推荐答案

您无法通过 selenium 控制下载文件的命名.

您可以做的是使用目录观察者/观察者来检测文件何时被下载,然后相应地重命名.请参阅此答案,其中包含更多后续详细信息.

What you can do is to use a directory watcher/observer to detect when the file is downloaded and then rename it accordingly. Please see this answer containing more follow-up details.

这篇关于重命名下载的文件 selenium的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-03 19:03