关键词:
【中文标题】为啥我的 Python 代码在从文本文件中读取时会打印额外的字符“”?【英文标题】:Why does my Python code print the extra characters "" when reading from a text file?为什么我的 Python 代码在从文本文件中读取时会打印额外的字符“”? 【发布时间】:2016-03-27 17:36:25 【问题描述】:try:
data=open('info.txt')
for each_line in data:
try:
(role,line_spoken)=each_line.split(':',1)
print(role,end='')
print(' said: ',end='')
print(line_spoken,end='')
except ValueError:
print(each_line)
data.close()
except IOError:
print("File is missing")
在逐行打印文件时,代码往往会在前面添加三个不必要的字符,即“”。
实际输出:
Man said: Is this the right room for an argument?
Other Man said: I've told you once.
Man said: No you haven't!
Other Man said: Yes I have.
预期输出:
Man said: Is this the right room for an argument?
Other Man said: I've told you once.
Man said: No you haven't!
Other Man said: Yes I have.
【问题讨论】:
您的文件可能以 UTF-8 和 BOM 编码。如果这不是您想要的,请在没有 BOM 的情况下对其进行编码。 How do I remove  from the beginning of a file?的可能重复 @MarcB 不是骗人的; Python 不是 PHP,在处理 UTF-8 BOM 方面有更好的选择。 OP,将encoding='utf-8-sig'
传递给您的open()
呼叫。
是的,文森特是对的。这是Byte-order mark 的典型情况。
@senshin 成功了,谢谢。 'code' data=open('sketch.txt',encoding='utf-8-sig')
【参考方案1】:
我找不到 Python 3 的副本,它处理与 Python 2 不同的编码。所以答案是:不要使用默认编码('utf-8'
)打开文件,而是使用'utf-8-sig'
,它期望并去除UTF-8 Byte Order Mark,即显示为
。
也就是说,而不是
data = open('info.txt')
做
data = open('info.txt', encoding='utf-8-sig')
请注意,如果您使用的是 Python 2,您应该会看到例如Python, Encoding output to UTF-8 和 Convert UTF-8 with BOM to UTF-8 with no BOM in Python。您需要使用codecs
或str.decode
进行一些恶作剧才能使其在Python 2 中正常工作。但在Python 3 中,您需要做的就是在打开文件时设置encoding=
参数。
【讨论】:
即使在使用这种编码之后,我仍然在某行前面得到 \ufeff,知道为什么吗?【参考方案2】:在处理 excel csv 文件时,我遇到了一个非常相似的问题。最初,我将下拉选项中的文件保存为 .csv utf-8(逗号分隔)文件。然后我将它保存为一个 .csv(逗号分隔)文件,一切都很好。 .txt 文件可能存在类似问题
【讨论】:
【参考方案3】:当我发生这种情况时,它只发生在我的 CSV 的第一行,无论是读取还是写入。对于我正在做的事情,我只是在第一个位置做了一个“牺牲”条目,这样那些角色就会被添加到我的牺牲条目中,而不是我关心的任何一个。 Definitley 不是一个强大的解决方案,但速度很快,并且适合我的目的。
【讨论】:
在从文件读取的字母数字数组中查找数字元素并将它们写入新文件
...oanewfile【发布时间】:2017-06-2513:48:36【问题描述】:所以我的目标是读取一个文本文件,该文件是一个包含整数和字符串的数组,然后对一些数字进行一些计算,然后将原始数据与新计算的数据一起放入一个新的文本文 查看详情
Visual Studio 代码编辑器中的问题。为啥我保存文件时会关闭它们?
】VisualStudio代码编辑器中的问题。为啥我保存文件时会关闭它们?【英文标题】:IssueinVisualStudioCodeeditor.WhyarefilesclosingwhenIsavethem?VisualStudio代码编辑器中的问题。为什么我保存文件时会关闭它们?【发布时间】:2021-12-2713:53:14【... 查看详情
为啥 Xcode 在从 Logic Unit Test 目标执行测试时会启动模拟器?
】为啥Xcode在从LogicUnitTest目标执行测试时会启动模拟器?【英文标题】:WhyXcodeislaunchingasimulatorwhenperformingatestfromaLogicUnitTesttarget?为什么Xcode在从LogicUnitTest目标执行测试时会启动模拟器?【发布时间】:2019-03-1915:47:02【问题描述... 查看详情
C ++将文本文件中的数字读取到数组中
...中读取数字并将它们打印在屏幕上时遇到了一些问题这是我的代码:#include<iostream>#in 查看详情
为啥在我运行 npm run dev 代码时会更改我的 mix-manifest 文件?
】为啥在我运行npmrundev代码时会更改我的mix-manifest文件?【英文标题】:Whydoeschangemymix-manifestfilewhenirunnpmrundevcode?为什么在我运行npmrundev代码时会更改我的mix-manifest文件?【发布时间】:2021-10-2317:47:47【问题描述】:当我在我的L... 查看详情
Python 文件未读取文本文件的内容
...entsofatextfile【发布时间】:2021-05-0523:19:23【问题描述】:我的Python文件只是一个很小的文件,它不会读取与python文件位于同一文件夹中的.txt文件的内容。(非常简单的)代码如下:file=open("contents.txt","r")print(file.read())file.clos 查看详情
为啥python在关闭fifo文件时会生成sigpipe异常?
】为啥python在关闭fifo文件时会生成sigpipe异常?【英文标题】:Whydoespythongeneratesigpipeexceptiononclosingafifofile?为什么python在关闭fifo文件时会生成sigpipe异常?【发布时间】:2020-02-0708:42:34【问题描述】:TL;DR:为什么关闭收到SIGPIPE异... 查看详情
为啥我的 App.js 代码在保存时会自行更改?
】为啥我的App.js代码在保存时会自行更改?【英文标题】:WhydoesmyApp.jscodechangesitselfuponsave?为什么我的App.js代码在保存时会自行更改?【发布时间】:2020-06-0207:57:26【问题描述】:我正在尝试构建我的第一个ReactNative应用程序。... 查看详情
为啥 InputStreamReader 从 jar 读取时会抛出 NPE?
】为啥InputStreamReader从jar读取时会抛出NPE?【英文标题】:WhydoesInputStreamReaderthrowaNPEwhenreadingfromajar?为什么InputStreamReader从jar读取时会抛出NPE?【发布时间】:2011-08-2617:33:55【问题描述】:我正在尝试使用流迭代已知目录中的类文... 查看详情
为啥在从 C# 创建的进程中运行 bash 命令时我的 $PATH 不同?
】为啥在从C#创建的进程中运行bash命令时我的$PATH不同?【英文标题】:Whyismy$PATHdifferentwhenrunningbashcommandsinsideaprocesscreatedfromC#?为什么在从C#创建的进程中运行bash命令时我的$PATH不同?【发布时间】:2021-07-1407:14:51【问题描述】... 查看详情
为啥我的代码只显示了一行?
】为啥我的代码只显示了一行?【英文标题】:Whyisonlyonelineofmycodeshowingup?为什么我的代码只显示了一行?【发布时间】:2019-04-0810:06:01【问题描述】:我正在尝试从我的文件(salsa2.txt)中读取,并且只显示其中的一行?我的文本... 查看详情
为啥我的 .NET 应用程序从网络驱动器运行时会崩溃?
】为啥我的.NET应用程序从网络驱动器运行时会崩溃?【英文标题】:Whydoesmy.NETapplicationcrashwhenrunfromanetworkdrive?为什么我的.NET应用程序从网络驱动器运行时会崩溃?【发布时间】:2010-09-1400:21:31【问题描述】:我的.NET应用程序在... 查看详情
为啥 HttpServletRequest 对象在从一个 servlet 转发到另一个 servlet 时会发生变化?
】为啥HttpServletRequest对象在从一个servlet转发到另一个servlet时会发生变化?【英文标题】:WhyHttpServletRequestobjectgetchangedwhenitisforwardedfromoneservlettoanother?为什么HttpServletRequest对象在从一个servlet转发到另一个servlet时会发生变化?【... 查看详情
为啥 CoUninitialize 在退出时会导致错误?
】为啥CoUninitialize在退出时会导致错误?【英文标题】:WhydoesCoUninitializecauseanerroronexit?为什么CoUninitialize在退出时会导致错误?【发布时间】:2011-02-0820:59:33【问题描述】:我正在开发一个C++应用程序以从Excel文件中读取一些数... 查看详情
从文本文件中读取非 ASCII 字符
...,比如编解码器,但没有奏效。我该如何解决这个问题。我的文件.txtwörd我的代码f=open(\'myfile.txt\',\'r\')forlineinf:printlinef.close()输出 查看详情
为啥即使在关闭临时文件后我也能够写入和读取它?
】为啥即使在关闭临时文件后我也能够写入和读取它?【英文标题】:WhyamIabletowritetoandreadatempfileevenafterclosingit?为什么即使在关闭临时文件后我也能够写入和读取它?【发布时间】:2018-11-1106:34:19【问题描述】:我正在尝试从我... 查看详情
为啥xml包在Python3中修改我的xml文件?
】为啥xml包在Python3中修改我的xml文件?【英文标题】:WhydoesxmlpackagemodifymyxmlfileinPython3?为什么xml包在Python3中修改我的xml文件?【发布时间】:2018-02-0923:01:29【问题描述】:我使用Python3.5中的xml库来读取和写入一个xml文件。我不... 查看详情
Python 不读取整个文本文件
...有看到任何人在***上遇到过,甚至没有在谷歌上看到过。我的主要目标是能够用另一个字符串替换文件中出现的字符串。有没有办法可以访问文件中的所有行。问题是当我尝试读取一个大文本文件(1-2gb)的文本时,python只读取... 查看详情