Python unicode popen 或 Popen 读取 unicode 时出错

2023-12-01

我有一个程序可以生成以下输出:

             ┌───────────────────────┐
             │10 day weather forecast│
             └───────────────────────┘
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
Tonight Sep 27      Clear               54      0 %
Tue Sep 28          Sunny               85/61   0 %
Wed Sep 29          Sunny               86/62   0 %
Thu Sep 30          Sunny               87/65   0 %
Fri Oct 01          Sunny               85/62   0 %
Sat Oct 02          Sunny               81/59   0 %
Sun Oct 03          Sunny               79/56   0 %
Mon Oct 04          Sunny               78/58   0 %
Tue Oct 05          Sunny               81/61   0 %
Wed Oct 06          Sunny               81/61   0 %

Last Updated Sep 27 10:20 p.m. CT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

这个网站上的格式似乎不正确,但顶部的下面几行和底部的上面几行会导致 unicode 错误。

这是 os.popen 的代码示例

>>> buffer = popen('10day', 'r').read()
Traceback (most recent call last):
  File "/home/woodnt/python/10_day_forecast.py", line 129, in <module>
    line_lower(51)
  File "/home/woodnt/python/lib/box.py", line 24, in line_lower
    print upper_line * len
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-50: ordinal not in range(128)
>>> print buffer

             ┌───────────────────────┐
             │10 day weather forecast│
             └───────────────────────┘

>>> 

subprocess.Popen 也是如此:

f = Popen('10day', stdout=PIPE, stdin=PIPE, stderr=PIPE)
o, er = f.communicate()
print o

             ┌───────────────────────┐
             │10 day weather forecast│
             └───────────────────────┘

print er
Traceback (most recent call last):
  File "/home/woodnt/python/10_day_forecast.py", line 129, in <module>
    line_lower(51)
  File "/home/woodnt/python/lib/box.py", line 24, in line_lower
    print upper_line * len
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-50: ordinal not in range(128)

有什么想法可以让这在没有大量“幕后”工作的情况下发挥作用吗?我正在学习编程并从 python 开始


我想说从控制台运行程序应该可以正常工作,因为Python可以猜测终端窗口的控制台编码(美国Windows上的cp437),但是当通过管道运行时,Python使用默认的ascii。尝试将您的程序更改为encode所有 Unicode 输出都采用显式编码,例如:

print (upper_line * len).encode('cp437')

然后当你从管道中读取它时,你可以decode返回 Unicode 或直接打印到终端。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python unicode popen 或 Popen 读取 unicode 时出错 的相关文章

  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何生成给定范围内的回文数列表?

    假设范围是 1 X 120 这是我尝试过的 gt gt gt def isPalindrome s check if a number is a Palindrome s str s return s s 1 gt gt gt def ge
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • Bash:递归复制命名文件,保留文件夹结构

    我希望 cp R src prog js images icon jpg tmp package 将在目标目录中产生对称结构 tmp package src prog js images icon jpg 但相反 这两个文件都被复制到 tm
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数

随机推荐

  • Windbg设置条件断点

    我想在windbg中放置一个条件断点 例如 我们可以说 LoadLibrary API 我怎样才能设置断点 以便在加载 user32 dll 时就应该设置断点 gt x kernel32 LoadLibraryW 它将给出一些地址 XXXX
  • 跨类型转换维护计量单位

    如果我们定义一个测量单位 例如
  • Android:查找内存泄漏的工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有没有一些有用的工具可以检测 Android Java 应用程序中的内存泄漏 类似于 Valgrind 的东西 其中显示了非释放对象的创建位置 看这
  • 在 Liferay 6.2 中使用 Bootstrap 3.3.6

    我正在 Liferay 6 2 中使用 Bootstrap 3 我在CSS和JS中插入了bootstrap css和bootstrap min js 我还更改了 custom css 中的一些样式 incompatilibilidad 你对
  • 如何更改面板的 BorderStyle?

    我有一个面板System Windows Forms Panel 有财产 BorderStyle FixedSingle 它以灰色边框渲染 I need 如果可能的话 能够设置边框的颜色和厚度 我很想知道是否也可以完全隐藏边界 知道如何解决
  • 使用 scikit-image 和 RANSAC 稳健估计多项式几何变换

    我想用 scikit image skimage transform 和 skimage measure ransac 稳健地估计多项式几何变换 ransack 文档提供了一个非常好的示例 说明如何通过相似性变换来实现这一点 事情是这样的
  • 需要特定字符串作为 TypeScript 界面中的可选键

    我遇到过这样的情况 我可以将许多可选的 T 恤大小的道具添加到一个对象中 有没有办法定义一个类型并将其设置为接口中可选键的类型 type Size xxs xs s m l xl xxl interface Sizes key Size s
  • matlab中如何读取文件夹中的图像

    我有六个这样的文件夹 gt gt Images每个文件夹都包含一些图像 我知道如何在 matlab 中读取图像 但我的问题是如何遍历这些文件夹并读取 abc m 文件中的图像 此文件显示在image 所以基本上你想读取不同文件夹中的图像 而
  • 如果字符超过一定限制,如何修剪元素的内容并添加“...”?

    我想修剪一部分 td 如果太长 这将确保桌子不会弄乱 下表中的所有数据均从数据库中检索 在 主题 部分 如果文本超过一定的字符限制 如何缩短文本并添加 这是该表的屏幕截图 正如您所看到的 如果主题太长 可能会弄乱表格 是否有任何 jQuer
  • 自定义寻呼机模板

    默认分页器机制在最后一行插入一个表格 然后该表格包含一行 其中包含所需数量的包含页码的单元格 我将页面模式设置为数字 我不想创建一个嵌套表格 而是创建一个由小方形 div 组成的分页模板 这些小方形 div 浮动在彼此的左侧 每个框中都有页
  • Swift 3 核心数据删除对象

    不幸的是 新的核心数据语义让我发疯 我之前的问题有一个干净的代码 但由于头文件的自动生成不正确而无法工作 现在我继续删除对象的工作 我的代码看起来很简单 func deleteProfile withID Int let fetchRequ
  • 不区分大小写的搜索并用 sed 替换

    我正在尝试使用 SED 从日志文件中提取文本 我可以毫不费力地进行搜索和替换 sed s foo bar mylog txt 但是 我想让搜索不区分大小写 从我用谷歌搜索到的内容来看 它看起来像是附加i到命令结束应该有效 sed s foo
  • 拆分包含音频的 CMSampleBufferRef

    我在录制时将录音分成不同的文件 问题是 captureOutput 视频和音频样本缓冲区不对应 1 1 这是合乎逻辑的 void captureOutput AVCaptureOutput captureOutput didOutputSa
  • 如何在div悬停时隐藏视频?

    我试图在 div 悬停时隐藏视频 但我似乎无法使其工作 目前 live video 类位于顶部 eat video 位于下方 我想在悬停 video hover 类时隐藏 live video 的显示 我想要实现的是 2 个全屏视频堆叠在一
  • 解析不同的日期格式:正则表达式

    重新发布这个问题并附上具体细节 因为最后一个问题已被标记下来 我正在努力从档案卡中解析混乱的 tesseract ocr 以获取至少 50 的信息 date1 数据行包含不同形式的日期 如下面的数据示例所示 Raw Text 1 15957
  • 使用 .bat 文件从 .xls 文件读取值

    我只是想知道是否有任何方法可以使用 bat 文件从 xls 文件中读取值 例如 如果我有一个名为 test xls 的 xls 它有两列 即 EID 然后是 邮件 ID 现在 当我们向 xls 输入 EID 名称时 它应该提取与 EID 相
  • 文本框的数据绑定

    我有一个存储 Fruit 类型的对象的基本属性 Fruit food public Fruit Food get return this food set this food value this RefreshDataBindings p
  • 尝试运行“ionic cordova run --emulator”时,在 com.android.prefs.AndroidLocation.getAvdFolder() 上出现 NoSuchMethodError 异常

    我刚刚升级了我的 cordova 和 ionic npm update g cordova ionic 现在当我运行 ionic cordova run emulator 时 我收到以下错误消息 线程 main 中出现异常 java lan
  • 使用jquery从html页面中删除样式标签

    有什么办法可以删除
  • Python unicode popen 或 Popen 读取 unicode 时出错

    我有一个程序可以生成以下输出 10 day weather forecast Tonight Sep 27 Clear 54 0 Tue Sep 28 Sunny 85 61 0 Wed Sep 29 Sunny 86 62 0 Thu S