在 Windows 记事本的 Python 中创建 UTF-16 换行符

2024-04-06

在 Ubuntu 中运行的 Python 2.7 中,这段代码:

f = open("testfile.txt", "w")
f.write("Line one".encode("utf-16"))
f.write(u"\r\n".encode("utf-16"))
f.write("Line two".encode("utf-16"))

在 Gedit 中读取时,会在两行文本之间生成所需的换行符:

Line one
Line two

但是,在 Windows 7 中执行并在记事本中读取的相同代码会在“第一行”之后产生无法理解的字符,但记事本无法识别换行符。如何在 Windows 中为 UTF-16 编写正确的换行符以匹配我在 Ubuntu 中获得的输出?

我正在为仅读取 Unicode UTF-16 的 Windows 应用程序编写输出。我花了几个小时尝试不同的技巧,但似乎对记事本不起作用。值得一提的是,我可以在记事本中成功地将文本文件转换为 UTF-16,但我宁愿让脚本首先正确保存编码。


问题是您正在以文本模式打开文件,但尝试将其用作二进制文件。

This:

u"\r\n".encode("utf-16")

…编码为'\r\0\n\0'.

然后这个:

f.write('\r\0\n\0')

...将 Unix 换行符转换为 Windows 换行符,给出'\r\0\r\n\0'.

当然,这会破坏您的 UTF-16 编码。除了两人的事实之外\r\nbytes 将解码为有效但未分配的代码点 U+0A0D,这是奇数个字节,这意味着您有剩余的字节\0。所以,而不是L\0作为下一个角色,它是\0L, aka , 等等。

最重要的是,您可能正在为每个编码字符串编写一个新的 UTF-16 BOM。大多数 Windows 应用程序实际上会透明地处理并忽略它们,因此您实际上所做的只是浪费两个字节/行,但这实际上并不正确。


解决第一个问题的快速方法是以二进制模式打开文件:

f = open("testfile.txt", "wb")

这并不能解决多 BOM 问题,但可以解决损坏的问题\n问题。如果您想修复 BOM 问题,您可以使用有状态编码,或者显式指定'utf-16-le' (or 'utf-16-be') 对于除第一次写入之外的所有写入。


But the easy修复,对于both问题,就是使用io模块(或者,对于较旧的 Python 2.x,codecs模块)为您完成所有艰苦的工作:

f = io.open("testfile.txt", "w", encoding="utf-8")
f.write("Line one")
f.write(u"\r\n")
f.write("Line two")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 记事本的 Python 中创建 UTF-16 换行符 的相关文章

  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • 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
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • Python - 按月对日期进行分组

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

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 如何改变Python中特定打印字母的颜色?

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

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 如何将 GIT 调用的输出获取到批处理脚本中的变量中?

    我有一个 git 命令来获取当前存储库的最新 SHA 如下所示 git log pretty format H n 1 我有一个 Windows 批处理脚本 我想按如下方式使用它 SET CURRENT SHA 但我不知道如何将从 git
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • Python 找不到 Pyomo

    我很困惑为什么 Python 不导入 pyomo 我可以找到该目录并看到它已安装 234 pyomo user pip show pyomo Name Pyomo Version 5 1 1 Summary Pyomo Python Opt
  • Jquery AJAX post 更新数据库

    我在 HTML 表单中使用以下代码 尝试制作一种 彩票刮刮票 类型的效果 有一个网格 每个项目都有一个来自数据库的动态数字 单击正方形会调用 clickme 函数 进行 db 调用 然后更改图像 我只是在第一部分尝试更新数据库 我的 PHP
  • ControllerPlugin 类中的 ZF2 getServiceLocator

    我正在尝试在插件类中获取服务定位器 实体管理器 我怎样才能得到它 在我的控制器中我得到的是这样的 public function getEntityManager if null this gt em this gt em this gt
  • 我可以在 SQL Server 中选择 0 列吗?

    我希望这个问题比类似的问题好一点创建一个没有列的表 https stackoverflow com questions 2438321 create a table without columns 是的 我问的是一些最让人觉得毫无意义的学术
  • 表不必要的冗余

    我的物品列出如下 当然这只是一个总结 但我正在使用 详细信息 表中显示的方法来表示一种 继承 类型 可以这么说 因为 项目 和 可下载 将是相同的 除了每个都有一些相关的附加字段只对他们而言 我的问题是在这个设计模式中 这种事情在我们的项目
  • 当前不会命中断点。该文档尚未加载任何符号

    我用谷歌搜索了这个特定问题 但似乎找不到可行的解决方案 症状 在 Web 应用程序项目中的 aspx 页面的代码隐藏中添加断点后 该断点在页边空白处显示为一个空心的红色圆圈 圆圈右下角有一个用黄色三角形括起来的感叹号 将鼠标悬停在断点上时
  • 使用自定义对象的 JTable、JComboBox

    您好 如果您将 JComboBox 放入 JTable 中并将 String 数组放入 JComboBox 中 则一切正常 如果您将自己的数据类型放入 JComboBox 则在同一列中选择值会变得很复杂 这是官方示例 http docs o
  • 在单调递增然后递减的序列 cera 中查找一个数

    查找单调增加然后单调减少的序列中的最大值或最小值可以在 O log n 内完成 但是 如果我想检查一个数字是否存在于这样的序列中 这也可以在 O log n 中完成吗 我认为这是不可能的 考虑这个例子 1 4 5 6 7 10 8 3 2
  • 如何创建元组数组?

    我知道要在 C 中创建元组 我们使用以下格式 Tuple
  • Azure SQL 数据库 Bacpac 本地还原

    我使用 Azure 管理控制台中的 导出 选项创建了 Azure SQL 数据库的 BACPAC 备份 将其下载到我的计算机后 我对如何将其恢复到本地 SQL Server 实例有点困惑 我遇到了 DacImportExportCli 工具
  • 在 Visual Studio 中使用 FFmpeg

    我正在尝试在 Visual Studio 2010 的 C 项目中使用 FFmpeg 我想将这些库作为静态链接文件包含在内 简单的程序如libavcodec api example c http cekirdek pardus org tr
  • 寻找Excel自定义函数工具提示

    这个问题已经被asked https stackoverflow com questions 4262421 how to put a tooltip on a user defined function before https stac
  • 关于映射和迭代器的理论澄清

    如果我有一个带有地图作为私有成员的类 例如 class MyClass public MyClass std map
  • 添加样式以回显[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想为这个 php echo 添加一
  • 如何从 javascript 数组推送 JSON 中的元素

    我想将 javascript 数组值添加到 JSON 值对象中 其他元素也替换了我的元素 如收件人 主题 消息 我得到的 Json 如下 下面是我的代码 var BODY recipients values subject title bo
  • 在 MySQL 中获取下个月的第一个和最后一个日期

    如何在 where 子句中使用下个月的第一天和最后一天 Use SELECT DATE SUB LAST DAY DATE ADD NOW INTERVAL 1 MONTH INTERVAL DAY LAST DAY DATE ADD NO
  • FileOutputstream.close() 并不总是将字节写入文件系统?

    看完之后这个答案 https stackoverflow com questions 7849528 fileoutputstream close is really slow when writing large file 7849941
  • 设置 WebRequest 的正文数据

    我正在 ASP NET 中创建一个 Web 请求 我需要向正文添加一堆数据 我怎么做 var request HttpWebRequest Create targetURL request Method PUT response HttpW
  • GitHub 的 GPG 公钥是什么?

    如果您通过 GitHub 网站进行编辑 或合并拉取请求 则生成的提交将自动使用 GitHub 的 GPG 密钥进行签名 它看起来像这样 我希望拥有完整的公钥 以便我可以将其添加为我的系统上的可信密钥 GitHub 的 GPG 公钥是什么 G
  • 在 Windows 记事本的 Python 中创建 UTF-16 换行符

    在 Ubuntu 中运行的 Python 2 7 中 这段代码 f open testfile txt w f write Line one encode utf 16 f write u r n encode utf 16 f write