我已经仔细阅读了与这个问题相关的其他主题,但没有人直接回答这个问题。我希望也许你们都可以提供帮助。
我正在努力清理长期滥用和未清理的Wordpress主题。我们有大约10-12个未使用的CSS文件。就在我要删除它们之前,有人告诉我,某些文件可能已在网站的实际内容中引用。 Shudder 我正在使用Python在行中搜索文件名。如果找到名称,它将从它所在的文件中呈现该行,并完整地呈现该行。最后,它显示最终结果并关闭文件等。这是代码。 (抬头......我对Python不太熟悉。)
cssfile = open("css.txt", "r")
s = open("berea.sql", "r", encoding="utf-8")
totalfound = 0
lineinfile = 0
for filename in cssfile:
for line in s:
lineinfile = lineinfile+1
for filename in line:
print (lineinfile, line)
totalfound = totalfound+1
lineinfile=0
if totalfound == 0:
print ("No results were found for %s") % filename
else:
print ("We found %i of %s in the database") % (totalfound, filename)
cssfile.close()
searchfile.close()
老实说,最大的问题来自我收到的编码错误。
UnicodeEncodeError: 'charmap' codec can't encode character '\u2013' in position
445: character maps to <undefined>
我已经看到添加不同的解码,编码等应该修复它,但似乎没有任何工作...我会感激任何和所有的帮助。我有大约349,000行要搜索,我一直在830停止。
答案 0 :(得分:0)
https://wiki.python.org/moin/PrintFails详细说明了此错误。
&#34; UnicodeEncodeError:&#39; charmap&#39;编解码器不能对字符u&#39; \ u1234&#39;进行编码。在位置0:字符映射到未定义&#34;
这意味着python控制台应用程序无法将给定的字符写入控制台的编码。
更具体地说,python控制台应用程序创建了一个_io.TextIOWrapperd实例,其编码不能代表给定的字符。
...
默认情况下,Microsoft Windows中的控制台仅显示256个字符(cp437,&#34;代码页437&#34;,原始IBM-PC 1981扩展ASCII字符集。)
如果您尝试打印不可打印的字符,则会收到UnicodeEncodeError。
如上所述设置PYTHONIOENCODING环境变量可用于抑制错误消息。设置为&#34; utf-8&#34;不推荐使用,因为这会产生输出到控制台的不准确,乱码表示。为了获得最佳效果,请使用您的控制台正确的默认代码页和除#34; strict&#34;以外的合适的错误处理程序。
尝试忽略其中一些建议并在Windows CMD中执行以下操作:
set PYTHONIOENCODING=utf-8
chcp 65001
还将控制台字体设置为:Lucinda Console
这应该将控制台设置为糟糕的UTF-8仿真并强制Python编码为UTF-8。
您可能会发现将结果写入UTF-8编码文件而不是写入控制台更简单。
答案 1 :(得分:0)
在Windows中,只需从Python IDLE GUI运行它,而不是从控制台窗口运行它。