相关疑难解决方法(0)

为什么我们不应该在py脚本中使用sys.setdefaultencoding("utf-8")?

我见过很少的py脚本在脚本的顶部使用它.在什么情况下应该使用它?

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
Run Code Online (Sandbox Code Playgroud)

python encoding utf-8 python-2.x sys

158
推荐指数
3
解决办法
18万
查看次数

UnicodeDecodeError:'ascii'编解码器无法解码位置13中的字节0xe2:序数不在范围内(128)

我正在使用NLTK在我的文本文件上执行kmeans聚类,其中每一行都被视为文档.例如,我的文本文件是这样的:

属于手指死亡打孔
仓促
迈克仓促墙壁
jerichojägermeister规则
规则乐队跟随表演jägermeister阶段
方法

现在我试图运行的演示代码是:https://gist.github.com/xim/1279283

我收到的错误是这样的:

belong finger death punch <br>
hasty <br>
mike hasty walls jericho <br>
jägermeister rules <br>
rules bands follow performing jägermeister stage <br>
approach 
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

python python-2.7

118
推荐指数
7
解决办法
27万
查看次数

切换到Python 3导致UnicodeDecodeError

我刚刚向Sublime添加了Python3解释器,以下代码停止工作:

for directory in directoryList:
    fileList = os.listdir(directory)
    for filename in fileList:
        filename = os.path.join(directory, filename)
        currentFile = open(filename, 'rt')
        for line in currentFile:               ##Here comes the exception.
            currentLine = line.split(' ')
            for word in currentLine:
                if word.lower() not in bigBagOfWords:
                    bigBagOfWords.append(word.lower())
        currentFile.close()
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

  File "/Users/Kuba/Desktop/DictionaryCreator.py", line 11, in <module>
    for line in currentFile:
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 305: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我觉得这很奇怪,因为据我所知,Python3应该支持utf-8无处不在.更重要的是,相同的代码在Python2.7上没有任何问题.我已经阅读了关于添加环境变量的内容PYTHONIOENCODING,但我尝试了它 …

python encoding python-3.x

27
推荐指数
1
解决办法
4万
查看次数

Python 2.7 UnicodeDecodeError:'ascii'编解码器无法解码字节

我一直在解析一些带有特殊字符(捷克语字母)的docx文件(UTF-8编码的XML).当我尝试输出到stdout时,一切顺利,但我无法将数据输出到文件,

回溯(最近一次调用最后一次):
文件"./test.py",第360行,
inile.write(u'\ t\t\t\t\t\t \n \n')
UnicodeEncodeError:'ascii'编解码器不能编码位置37的字符u'\ xed':序数不在范围内(128)

虽然我明确地将word变量转换为unicode类型(type(word)返回unicode),但我试图对它进行编码,.encode('utf-8)我仍然坚持这个错误.

以下是现在看到的代码示例:

for word in word_list:
    word = unicode(word)
    #...
    ofile.write(u'\t\t\t\t\t<feat att="writtenForm" val="'+word+u'"/>\n')
    #...
Run Code Online (Sandbox Code Playgroud)

我也尝试过以下方法:

for word in word_list:
    word = word.encode('utf-8')
    #...
    ofile.write(u'\t\t\t\t\t<feat att="writtenForm" val="'+word+u'"/>\n')
    #...
Run Code Online (Sandbox Code Playgroud)

即使是这两者的组合:

word = unicode(word)
word = word.encode('utf-8')
Run Code Online (Sandbox Code Playgroud)

我有点绝望,所以我甚至试图编码里面的单词变量 ofile.write()

ofile.write(u'\t\t\t\t\t<feat att="writtenForm" val="'+word.encode('utf-8')+u'"/>\n')
Run Code Online (Sandbox Code Playgroud)

我很欣赏任何我做错的提示.

python unicode

4
推荐指数
1
解决办法
2万
查看次数

如何在Python 3.6中解决UnicodeDecodeError?

我从Python 2.7切换到Python 3.6。

我有处理某些非英语内容的脚本。

我通常通过Cron和Terminal运行脚本。

我的python 2.7脚本中出现了UnicodeDecodeError,我解决了这个问题。

# encoding=utf8  
import sys  

reload(sys)  
sys.setdefaultencoding('utf8')
Run Code Online (Sandbox Code Playgroud)

现在在Python 3.6中,它不起作用。我有类似的打印语句print("Here %s" % (myvar)),它会引发错误。我可以通过将其替换为来解决此问题,myvar.encode("utf-8")但我不想用每个print语句编写。

PYTHONIOENCODING=utf-8在终端机上做了,但仍然有这个问题。

有没有更清洁的方法来解决UnicodeDecodeErrorPython 3.6中的问题?

有没有办法告诉Python3在utf-8中打印所有内容?就像我在Python2中所做的一样?

python unicode python-3.x

4
推荐指数
2
解决办法
9315
查看次数

无法在 matplotlib 中保存动画:Windows 权限被拒绝

我花了一天的时间来解决这个问题,检查类似的线程,但没有成功。 Stretch 的 Cannot save matplotlib Animation with ffmpeg帮助解决了以前的错误(我的 ffmpeg 路径错误),但修复后我一直遇到访问被拒绝的情况。

我的 ffmpeg 二进制文件已打开C:\ffmpeg\bin

一个不错的选择是能够导出 gif 文件,但我不断收到 imagemagick 的 ascii 错误。我认为这两个问题是相关的,所以我想先整理一下ffmpeg。

我认为这个问题可能与我正在使用 Canopy (在 Windows 8 64 位中)有关,它几乎霸占了我的路径变量并破坏了一些东西(例如,自从我安装了 Canopy 以来,我无法打开 IDLE ,还没有尝试解决这个问题)。当我一路修复问题时,我发现了至少 3 个不同的路径变量,所有这些变量都已更新:Windows 高级设置路径(手动设置)、Windows 控制台路径(通过控制台使用 setx 设置)和 sys.path(设置或检查)在运行时),添加";C:\ffmpeg\bin",其中 ffmpeg 实际上是。不管我是否解决了问题,我都想了解这些环境变量中的哪些与什么相关,我觉得这很令人困惑。

代码如下:

# -*- coding: utf-8 -*-
import sys
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
plt.rcParams['animation.ffmpeg_path'] = r'C:\ffmpeg\bin'
if r'C:\ffmpeg\bin' not in sys.path: sys.path.append(r'C:\ffmpeg\bin')

fig = plt.figure()
ax …
Run Code Online (Sandbox Code Playgroud)

python animation ffmpeg matplotlib

3
推荐指数
1
解决办法
2569
查看次数