Python OSError:[Errno 22]open()的参数无效

Python OSError:[Errno 22]open()的参数无效,python,replace,beautifulsoup,Python,Replace,Beautifulsoup,当我尝试运行上面的代码时,网页的标题是“如何安装JDK 8(在Windows上), Mac OS、Ubuntu)和Java编程入门“我收到以下错误: import requests from bs4 import BeautifulSoup url = input("URL:") grab_page = requests.get(url) parse_page = BeautifulSoup(grab_page.text, "html.parser") file_name = parse_p

当我尝试运行上面的代码时,网页的标题是“如何安装JDK 8(在Windows上), Mac OS、Ubuntu)和Java编程入门“我收到以下错误:

import requests
from bs4 import BeautifulSoup


url = input("URL:")
grab_page = requests.get(url)
parse_page = BeautifulSoup(grab_page.text, "html.parser")
file_name = parse_page.title.string.replace("\\,()", "")


newfile = open(file_name + ".html", "w+")
newfile.write(grab_page.text)
回溯(最近一次呼叫最后一次):
文件“C:/Users/LKT/PycharmProjects/webpagegrabber/main.py”,第12行,在
newfile=open(文件名+“.html”,“w+”)
OSError:[Errno 22]无效参数:“如何安装JDK 8(在Windows,\r\n Mac OS、Ubuntu上)
并开始使用Java Programming.html'

哪里出错了?

您的文件名包含无效字符('\n','\r')。因此,您无法在windows中创建这样的文件。如以下文件所述:

整数表示形式在1到1范围内的字符 到31,但替换数据流除外,其中 是允许的。有关文件流的更多信息,请参见文件流 溪流


文件名包含无效字符('\n','\r')。因此,您无法在windows中创建这样的文件。如以下文件所述:

整数表示形式在1到1范围内的字符 到31,但替换数据流除外,其中 是允许的。有关文件流的更多信息,请参见文件流 溪流


您正在将
'如何安装JDK 8(在Windows,\r\nMac OS,Ubuntu上)和开始Java编程.html'
传递到
open
,根据您的操作系统,这不是一个有效路径。您正在将
'如何安装JDK 8(在Windows,\r\nMac OS,Ubuntu上)和开始Java编程.html'
传递到
open
,根据您的操作系统,这不是有效的路径。我尝试用.replace()函数替换这些字符。知道它为什么不起作用吗?它没有出现在您的代码中,但我会检查是否有其他非法的无效字符(可能也会将文件名打印为十六进制字符串),特别是这行代码:file\u name=parse\u page.title.string.replace(“\\,(),”),然后我尝试将其作为open()的参数传递不能在此处替换“\n”和“\r”。如果要替换它们,应调用replace('\n','')。replace('\r','')也-replace不将正则表达式作为参数,因此它只替换整个字符串的出现处。我尝试用.replace()函数替换这些字符。知道它为什么不起作用吗?它没有出现在您的代码中,但我会检查是否有其他非法的无效字符(可能也会将文件名打印为十六进制字符串),特别是这行代码:file\u name=parse\u page.title.string.replace(“\\,(),”),然后我尝试将其作为open()的参数传递不能在此处替换“\n”和“\r”。如果要替换它们,应调用replace('\n','')。replace('\r','')也-replace不将正则表达式作为参数,因此它将只替换整个字符串的出现处
Traceback (most recent call last):
  File "C:/Users/LKT/PycharmProjects/webpagegrabber/main.py", line 12, in <module>
    newfile = open(file_name + ".html", "w+")
OSError: [Errno 22] Invalid argument: 'How to Install JDK 8 (on Windows,\r\nMac OS, Ubuntu) 
    and Get Started with Java Programming.html'