繁体   English   中英

Python程序在IDLE中运行,但不在命令行中运行

[英]Python program is running in IDLE but not in command line

在有人说这是一个重复的问题之前,我只想让您知道,我在命令行中运行此程序时遇到的错误与我所看到的所有其他相关问题都不相同。

我正在尝试在Python中运行一个非常简短的脚本

from bs4 import BeautifulSoup
import urllib.request




html = urllib.request.urlopen("http://dictionary.reference.com/browse/word?s=t").read().strip()
dhtml = str(html, "utf-8").strip()
soup = BeautifulSoup(dhtml.strip(), "html.parser")
print(soup.prettify())

但是当我使用python.exe运行该程序时,我总是收到错误消息。 UnicodeEncodeError: 'charmap' codec can't encode character '\ɜ 我尝试了很多方法来解决此问题,但是我设法将其隔离为将字节转换为字符串的问题。 当我在IDLE中运行该程序时,将按预期方式获得HTML。 IDLE自动执行的操作是什么? 我可以使用IDLE的解释程序代替python.exe吗? 谢谢!

编辑:

我的问题是由print(soup.prettify())引起的,但是type(soup.prettify())返回了str

解决:

由于造成的麻烦,我最终决定使用encode()decode() 如果有人知道如何实际解决问题,请执行; 另外,谢谢你的回答

UnicodeEncodeError:'charmap'编解码器无法编码字符'\\ u025c'

控制台字符编码不能表示'\ɜ'即“ɜ” Unicode字符(U + 025C '\ɜ' OPEN E)

IDLE自动执行的操作是什么?

如果相应的字体支持给定的Unicode字符,则IDLE直接显示Unicode(仅BMP字符)。

我可以使用IDLE的解释程序代替python.exe吗

是的,运行:

T:\> py -midlelib -r your_script.py

注意:如果使用Unicode API,则可以将任意Unicode字符写入Windows控制台:

T:\> py -mpip install win-unicode-console
T:\> py -mrun your_script.py

请参阅对Python 3.4,Unicode,不同的语言和Windows有何处理?

我只是想让您知道,我在命令行中运行该程序时遇到的错误与我所看到的所有其他相关问题都不相同。

并不是的。 您和其他所有人一样都有PrintFails

Windows控制台无法打印Unicode。 (这并非完全正确,但是要确切地解释为什么,何时以及如何从控制台中退出Unicode是一项痛苦的练习,通常不值得这样做。)尝试打印不在控制台有限编码中的字符无法正常工作,因此Python给您一个错误。

打印出来(我需要一个更简单的解决方案,因为我不能对很多元素执行.encode(“ utf-8”)

您可以在运行脚本之前运行命令set PYTHONIOENCODING=utf-8来告诉Python使用和编码,该编码可以包含任何字符(因此没有错误),但是任何非ASCII输出仍然会出现乱码,因为其编码不会与控制台的实际代码页匹配。

(或者实际上只是使用IDLE。)

由于造成的麻烦,我最终决定使用encode()和解码()。 如果有人知道如何实际解决问题,请执行; 另外,谢谢你的回答

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM