簡體   English   中英

如何輸入文件名並用Python下載文件?

[英]How can I input a filename and download the file in Python?

我有文件數據庫。 我正在編寫一個程序,要求用戶輸入文件名,然后使用該輸入查找文件,下載文件,在本地創建文件夾並保存文件。應該使用Python中的哪個模塊?

可以像這樣小:

import requests

my_filename = input('Please enter a filename:')
my_url = 'http://www.somedomain/'
r = requests.get(my_url + my_filename, allow_redirects=True)
with open(my_filename, 'wb') as fh:
    fh.write(r.content)

好吧,您有在線數據庫嗎? 如果是這樣的話,我建議您使用requests模塊,非常pythonic且快速。 另一個基於請求的出色模塊是robobrowser

最終,您可能需要漂亮的湯來解析HTML或XML數據。

我會避免使用硒,因為它是為進行網絡測試而設計的,它需要一個瀏覽器和它的網絡驅動程序,而且速度很慢。 它根本無法滿足您的需求。

最后,要與數據庫進行交互,我將使用sqlite3

這里是一個示例:

from requests import Session
import os

filename = input()

with Session() as session:
    url = f'http://www.domain.example/{filename}'
    try:
        response = session.get(url)
    except requests.exceptions.ConnectionError:
        print('File not existing')
    download_path = f'C:\\Users\\{os.getlogin()}\\Downloads\\your application'
    os.makedirs(dowload_path, exist_ok=True)
    with open(os.path.join(download_path, filename), mode='wb') as dbfile:
        dbfile.write(response.content)

但是,您應該閱讀如何提出一個好問題

暫無
暫無

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

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