我已经发现了[这个问题](http://codingdict.com/questions/161576,建议os.path.expanduser(path)
用来获取用户的主目录。
我想通过“下载”文件夹实现相同的目的。我知道[这在C#中是可能的]http://codingdict.com/questions/168125),但是我是Python的新手,也不知道在这里是否也可以做到这一点,最好与平台无关(Windows,Ubuntu)。
我知道我可以做到download_folder = os.path.expanduser("~")+"/Downloads/"
,但是(至少在Windows中)可以更改默认下载文件夹。
正确定位Windows文件夹在Python中有些繁琐。根据答案覆盖微软的开发技术,比如这一次,他们应该使用Vista中获得已知的文件夹API。Python标准库没有包装此API(尽管从2008年开始有一个问题要求它),但是无论如何,都可以使用ctypes模块来访问它。
调整以上答案以使用文件夹ID进行此处所示的下载,并将其与您现有的Unix代码结合使用,应会产生如下所示的代码:
import os
if os.name == 'nt':
import ctypes
from ctypes import windll, wintypes
from uuid import UUID
# ctypes GUID copied from MSDN sample code
class GUID(ctypes.Structure):
_fields_ = [
("Data1", wintypes.DWORD),
("Data2", wintypes.WORD),
("Data3", wintypes.WORD),
("Data4", wintypes.BYTE * 8)
]
def __init__(self, uuidstr):
uuid = UUID(uuidstr)
ctypes.Structure.__init__(self)
self.Data1, self.Data2, self.Data3, \
self.Data4[0], self.Data4[1], rest = uuid.fields
for i in range(2, 8):
self.Data4[i] = rest>>(8-i-1)*8 & 0xff
SHGetKnownFolderPath = windll.shell32.SHGetKnownFolderPath
SHGetKnownFolderPath.argtypes = [
ctypes.POINTER(GUID), wintypes.DWORD,
wintypes.HANDLE, ctypes.POINTER(ctypes.c_wchar_p)
]
def _get_known_folder_path(uuidstr):
pathptr = ctypes.c_wchar_p()
guid = GUID(uuidstr)
if SHGetKnownFolderPath(ctypes.byref(guid), 0, 0, ctypes.byref(pathptr)):
raise ctypes.WinError()
return pathptr.value
FOLDERID_Download = '{374DE290-123F-4565-9164-39C4925E467B}'
def get_download_folder():
return _get_known_folder_path(FOLDERID_Download)
else:
def get_download_folder():
home = os.path.expanduser("~")
return os.path.join(home, "Downloads")
github上提供了一个更完整的模块,用于从Python检索已知文件夹。
我正在使用Python2.7、mechanize和beautifulsoup,如果有帮助,我可以使用urllib 我打算使用下面的代码来访问第二个表: 我猜class=“fe-form”是错误的,因为它不能工作,但是该表没有其他属性将它与其他表区分开来。所有表都有cellpadding=“0”cellspacing=“0”border=“0”width=“50%”。我想我不能使用find()函数。
python 能否只使用 python -m 命令参数 ,加一个文件 https://url.com/1.txt ,将这个文件下载下来? 文件下载
问题内容: 我有一个网络爬虫,可以搜索并下载某些文件,但是当“另存为或打开”对话框提示时如何下载pdf文件。我目前正在使用pythonselenium进行爬网。这是我的代码。 问题答案: 您将需要修改Firefox配置文件的首选项。为了使其不再显示该对话框,您需要设置使用中的配置文件的属性。为此,您可以执行此操作(请注意,这是针对CSV / Excel文件的-我认为您的类型将为“应用程序/ pdf
问题内容: 我正在使用它向用户发送文件 用户下载后我想删除该文件,我该怎么做? 编辑:我的情况是这样的,当用户点击下载按钮时,我的脚本将创建一个临时zip文件,然后用户下载该文件,然后该临时zip文件将被删除。 EDIT2:好的最佳方法似乎是运行一个cron作业,该作业每小时将清理一次临时文件。 EDIT3:我使用来测试了我的脚本,除非用户取消下载,否则它将起作用。如果用户取消下载,则zip文件将
我正在制作一个discord机器人,它从中获取数据。CSV文件,定期更新。为此,我希望我的机器人下载。将CSV文件发送到特定文本频道时。我找到了那个。附件对象不一致。py:https://discordpy.readthedocs.io/en/latest/api.html#discord.Message.attachments 我如何下载其中一个。CSV附件到我的项目,虽然(我正在使用Py魅力)
问题内容: 我想知道是否有一种方法可以使用jQuery找出我链接到网页的PDF的文件大小。 我要这样做,以便将鼠标悬停在下载链接上时,会弹出一个模式框,说明PDF的文件大小。我可以做第二点,我唯一想知道的是如何找出文件大小。我不知道jQuery是否能够做到这一点。如果不是那么太糟糕了,我猜.. 提前加油。 问题答案: 我觉得在客户端做太多事情了,但是我不知道您的应用程序的详细信息,因此假设您必须使