首先,我对python很陌生,如果你考虑投反对票,请留下评论
我有一个网址,比如
http://example.com/here/there/index.html
现在我想在一个目录中保存一个文件及其内容。我希望文件名为:
http://example.com/here/there/index.html
但是我得到了错误,我猜错误是由于url名称中的/
造成的。在
这就是我现在正在做的。在
with open('~/' + response.url, 'w') as f:
f.write(response.body)
你知道我该怎么做吗?在
你有几个问题。其中之一是unixshell缩写(
~
)不会像在unixshell中那样被Python自动解释。在第二个问题是,在Unix中编写一个嵌入斜杠的文件路径不会有好运气。如果你想在以后找到它们的话,你需要把它们转换成别的东西。您可以使用像
response.url.replace('/','_')
这样简单的东西来实现,但这会给您留下许多其他可能存在问题的字符。您可能希望一次性“消毒”所有这些。例如:它使用
os.path
函数来清理文件路径,并使用urllib.quote
将URL清理为适合文件名的内容。有一个对应的unquote
来逆转这个过程。在最后,当您写入文件时,您可能需要根据响应是什么以及您希望如何编写它们而稍微调整一下。如果您希望它们以二进制形式编写,则需要}作为文件模式。或者如果是文本,它可能需要某种编码(例如,to
"wb"
而不仅仅是{utf-8
)。这取决于你的回答是什么,以及它们是如何编码的。在使用urllib.urlretrieve:
您可以使用可逆的base64编码。在
或者binascii
^{pr2}$相关问题 更多 >
编程相关推荐