我无法在Windows上使用Python保存文件。
这是存储URL的URL变量:
my_url = "https://example.com/some-page"
我想从此字符串中删除“https:”部分和所有“/”。这就是我试过的:
filename = my_url.replace('https://', '')
filename = filename.replace('http://', '')
filename = filename.replace('/', '|') + ".txt"
我想删除这些字符,因为Windows不允许:
和/
个字符作为文件名。
我得到的错误是:
Traceback (most recent call last):
File "123.py", line 28, in <module>
f = open(filename, "w")
OSError: [Errno 22] Invalid argument: 'example.com|some-page.txt'
我希望使用多个网址执行此操作,因此即使实际链接使用https
,我也尝试删除http
。
答案 0 :(得分:1)
Windows文件名中也不允许使用管道符(“|”)。资料来源:https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
答案 1 :(得分:0)
我设法解决了问题:)
这就是我的所作所为:
filename = my_url.replace('https://', '')
filename = filename.replace('http://', '')
filename = filename.replace('.', '_')
filename = filename.replace('-', '_')
filename = filename.replace('/', '_') + ".txt"
谢谢!
答案 2 :(得分:0)
urllib
中有一个名为urllib.parse.quote
的函数可以从网址中删除特殊字符,并将其替换为等效的百分比编码。
urllib.parse.quote(字符串,安全=&#39; /&#39;,编码=无,错误=无)
使用%xx转义替换字符串中的特殊字符。字母,数字和字符&#39; _.-&#39;永远不会引用。默认情况下,此函数用于引用URL的路径部分。可选的安全参数指定不应引用的其他ASCII字符 - 其默认值为&#39; /&#39;。