相关疑难解决方法(0)

UnicodeDecodeError:'utf8'编解码器无法解码字节0x9c

我有一个套接字服务器,应该从客户端接收UTF-8有效字符.

问题是一些客户端(主要是黑客)正在通过它发送所有错误的数据.

我可以很容易地区分真正的客户端,但我正在记录所有发送的数据文件,以便我以后可以分析它.

有时我会得到这样的字符œ导致UnicodeDecodeError错误.

我需要能够使用或不使用这些字符来生成字符串UTF-8.


更新:

对于我的特殊情况,套接字服务是一个MTA,因此我只希望接收ASCII命令,如:

EHLO example.com
MAIL FROM: <john.doe@example.com>
...
Run Code Online (Sandbox Code Playgroud)

我用JSON记录了所有这些.

然后一些没有良好意图的人决定出售各种垃圾.

这就是为什么对于我的特定情况,剥离非ASCII字符是完全可以的.

python linux python-unicode

257
推荐指数
8
解决办法
63万
查看次数

如何确定文本的编码?

我收到了一些编码的文本,但我不知道使用了什么字符集.有没有办法使用Python确定文本文件的编码?如何检测文本文件的编码/代码页处理C#.

python encoding text-files

204
推荐指数
7
解决办法
20万
查看次数

用Python写入UTF-8文件

我真的很困惑codecs.open function.当我做:

file = codecs.open("temp", "w", "utf-8")
file.write(codecs.BOM_UTF8)
file.close()
Run Code Online (Sandbox Code Playgroud)

它给了我错误

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

如果我做:

file = open("temp", "w")
file.write(codecs.BOM_UTF8)
file.close()
Run Code Online (Sandbox Code Playgroud)

它工作正常.

问题是为什么第一种方法失败了?我该如何插入bom?

如果第二种方法是正确的做法,那么使用点是codecs.open(filename, "w", "utf-8")什么?

python byte-order-mark utf-8

184
推荐指数
5
解决办法
29万
查看次数

Python - 以递归方式查找和替换文本文件中的字符串的方法

我想以递归方式搜索包含文本文件子目录的目录,并用多行字符串的内容替换文件中每次出现的{$ replace}.如何用python实现这一目标?

[编辑]

到目前为止,我所拥有的是使用os.walk获取需要更改的文件列表的递归代码.

import os
import sys
fileList = []
rootdir = "C:\\test"
for root, subFolders, files in os.walk(rootdir):
  if subFolders != ".svn":
    for file in files:
      fileParts = file.split('.')
      if len(fileParts) > 1:
        if fileParts[1] == "php":
          fileList.append(os.path.join(root,file))


print fileList
Run Code Online (Sandbox Code Playgroud)

python

24
推荐指数
5
解决办法
4万
查看次数

安装 sklearn 时出现错误 | python setup.py Egg_info 未成功运行

在此处输入图像描述正在收集 sklearn\n使用缓存的 sklearn-0.0.post4.tar.gz (3.6 kB)\n准备元数据 (setup.py) ... 错误\n错误:子进程退出并出现错误

\n

\xc3\x97 python setup.py Egg_info 未成功运行。\n\xe2\x94\x82 退出代码: 1\n\xe2\x95\xb0\xe2\x94\x80> [8 行输出]\nTraceback (最近一次调用最后):\n文件“<string>”,第 2 行,<模块>\n文件“<pip-setuptools-caller>”,第 34 行,<模块>\n文件“C:\\Users\\ kusha\\AppData\\Local\\Temp\\pip-install-mtbck747\\sklearn_33137b31d9da4e98b4212dacff7ddab4\\setup.py",第 10 行,位于 <module>\nLONG_DESCRIPTION = f.read()\nFile "C:\\Program Files\\Python310\\lib\\encodings\\cp1252.py”,第 23 行,在解码中\n返回 codecs.charmap_decode(input,self.errors,decoding_table)[0]\nUnicodeDecodeError: \'charmap\' 编解码器可以\不解码位置 7 中的字节 0x8f:字符映射到 <undefined>\n[输出结束]

\n

注意:此错误源自子进程,并且可能不是 pip 的问题。\n错误:元数据生成失败

\n

\xc3\x97 生成包元数据时遇到错误。\n\xe2\x95\xb0\xe2\x94\x80> 请参阅上面的输出。

\n

注意:这是上面提到的包的问题,​​而不是 pip。\n提示:有关详细信息,请参阅上文。

\n

[通知] pip 的新版本可用:22.3.1 -> 23.0.1\n[通知] 要更新,请运行: python.exe -m pip install --upgrade pip

\n

尝试安装 SKlearn 并在安装时出现此错误。谁能帮我这个

\n

python scikit-learn charmap

13
推荐指数
1
解决办法
7209
查看次数

pandas在列中使用额外的逗号读取csv

我正在读一个基本的csv文件,其中列用逗号分隔,并带有以下列名:

userid, username, body

但是,body列是一个可能包含逗号的字符串.显然这会导致问题,并且大熊猫会抛出错误:

CParserError: Error tokenizing data. C error: Expected 3 fields in line 3, saw 8

有没有办法告诉大熊猫忽略特定列中的逗号或解决此问题的方法?

python csv pandas

11
推荐指数
3
解决办法
2万
查看次数

SyntaxError:在 Flask 应用程序的调试模式下无效或缺少编码声明,但在运行模式下则不然

我仅在 PyCharm 中处于调试模式时看到以下错误(按“bug”按钮)。它没有到达断点,但在加载flask.exe 文件时失败。

C:\ProgramData\Anaconda3\envs\workflow_webapp\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3.2\helpers\pydev\pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 55286 --file C:/ProgramData/Anaconda3/envs/workflow_webapp/Scripts/flask.exe run
pydev debugger: process 18788 is connecting

Connected to pydev debugger (build 183.5429.31)
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\envs\workflow_webapp\lib\tokenize.py", line 390, in find_cookie
    line_string = line.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 2: invalid start byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3.2\helpers\pydev\pydevd.py", line 1741, …
Run Code Online (Sandbox Code Playgroud)

python debugging pycharm flask

8
推荐指数
0
解决办法
1万
查看次数

os.popen().read() - charmap 解码错误

我已经阅读了UnicodeDecodeError: 'charmap' codec can't decode byte X in position Y: character maps to <undefined>。虽然错误信息相似,但代码完全不同,因为我os.popen在这个问题中使用了open. 我不能使用其他问题的答案来解决这个问题。

output = os.popen("dir").read()
Run Code Online (Sandbox Code Playgroud)

该行应该将命令“dir”的输出分配给变量“output”,导致此错误:

'charmap' codec can't decode byte 0x88 in position 260: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)

我认为这可能是因为文件夹中的某些文件包含诸如?, ?, ? 以他们的名义。我不知道如何解决这个问题。

python windows cmd python-3.x python-os

6
推荐指数
1
解决办法
4933
查看次数

使用python,如何阅读文件的"创建日期"?

我正在python中编写一个简短的脚本,它将扫描图像文件的文件夹列表,然后重新组织它们.

组织它们的一种可选方式是我们希望它们创建日期.

目前,我正在尝试按如下方式阅读图像创建日期

import os.path, time

f = open("hi.jpg")
data = f.read()
f.close()
print "last modified: %s" % time.ctime(os.path.getmtime(f))
print "created: %s" % time.ctime(os.path.getctime(f))
Run Code Online (Sandbox Code Playgroud)

但是我得到一个错误

Traceback (most recent call last):
  File "TestEXIFread.py", line 6, in <module>
    print "last modified: %s" % time.ctime(os.path.getmtime(f))
  File "/usr/lib/python2.7/genericpath.py", line 54, in getmtime
    return os.stat(filename).st_mtime
TypeError: coercing to Unicode: need string or buffer, file found
Run Code Online (Sandbox Code Playgroud)

谁能告诉我它意味着什么?

python exif image datecreated

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

Python JSON到CSV-编码错误,UnicodeDecodeError:“ charmap”编解码器无法解码字节

我在将嵌套的JSON转换为CSV时遇到问题。为此,我使用https://github.com/vinay20045/json-to-csv(有点支持python 3.4),这是完整的json-to-csv.py文件。如果我设置,转换工作正常

    #Base Condition
else:
    reduced_item[str(key)] = (str(value)).encode('utf8','ignore')
Run Code Online (Sandbox Code Playgroud)

fp = open(json_file_path, 'r', encoding='utf-8')
Run Code Online (Sandbox Code Playgroud)

但是当我将csv导入MS Excel时,我看到了西里尔字母错误的字符,例如\ xe0 \ xf1,英文文本就可以了。尝试设置encode('cp1251','ignore'),但随后出现错误UnicodeDecodeError:'charmap'编解码器无法解码位置Y的字节X:字符映射到(如此处UnicodeDecodeError:'charmap'编解码器无法解码位置Y的字节X:字符映射到<undefined>

import sys
import json
import csv

##
# This function converts an item like 
# {
#   "item_1":"value_11",
#   "item_2":"value_12",
#   "item_3":"value_13",
#   "item_4":["sub_value_14", "sub_value_15"],
#   "item_5":{
#       "sub_item_1":"sub_item_value_11",
#       "sub_item_2":["sub_item_value_12", "sub_item_value_13"]
#   }
# }
# To
# {
#   "node_item_1":"value_11",
#   "node_item_2":"value_12",
#   "node_item_3":"value_13",
#   "node_item_4_0":"sub_value_14", 
#   "node_item_4_1":"sub_value_15",
#   "node_item_5_sub_item_1":"sub_item_value_11",
#   "node_item_5_sub_item_2_0":"sub_item_value_12",
#   "node_item_5_sub_item_2_0":"sub_item_value_13"
# …
Run Code Online (Sandbox Code Playgroud)

python csv unicode json cyrillic

5
推荐指数
2
解决办法
2742
查看次数