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.
我找不到Python 3的重复版本,该版本3处理的编码与Python
2不同。因此,这就是答案:而不是使用默认编码(是'utf-8'
)打开文件,而是使用'utf-8-sig'
,它期望并去除UTF-
8字节顺序标记
,显示为
。
也就是说,代替
data = open('info.txt')
做
data = open('info.txt', encoding='utf-8-sig')
请注意,如果您使用的是Python
2,则应该看到例如Python,将输出编码为UTF-8并将带有BOM的UTF-8转换为在Python中没有BOM的UTF-8。您需要使用codecs
或进行一些恶作剧,str.decode
才能在Python
2中正常工作。但是在Python 3中,您要做的就是encoding=
在打开文件时设置参数。
问题内容: 我正在尝试从文本文件读取文本。有一些特殊的字符,如å,ä和ö。当我制作一个字符串并打印出该字符串时,我得到了?从这些特殊字符。我正在使用以下代码: 谁能告诉我是什么问题。我希望strLine以文本文件形式显示和保存å,ä和ö。提前致谢。 问题答案: 问题可能不在于文件,而在于您尝试打印的控制台。我建议您按照以下步骤 确保您正在读取的文件以UTF-8编码。 确保要打印的控制台具有正确
问题内容: 我已经从.txt文件中读取了以下内容: 但是在阅读并输出后,我得到了: 开头为null,这是方法: 返回的字符串由其输出 我尝试按或检查该字符串,但得到-1 有想法该怎么解决这个吗? 问题答案: 考虑循环的第一次迭代。的值是空的,价值就是。 在字符串连接中,空引用将转换为字符串“空”。例如: 因此,在您的第一次迭代中,当您执行时: 的价值将是 您 可以将其 初始化为…但我不会。 无论如
问题内容: 我正在使用Python打开文本文档: 我想将字符串变量的值替换为文本文档。有人可以让我知道怎么做吗? 问题答案: 如果使用上下文管理器,则将自动为你关闭文件 如果你使用的是Python2.6或更高版本,则最好使用 对于python2.7及更高版本,你可以使用代替 在Python3中,该函数有一个可选参数 Python3.6引入了f字符串作为另一种选择
问题内容: 我有以下课程: 这是编译结果; 为什么我的输出中包含数字? 问题答案: 在第二种情况下,它将两个字符(G-71和o-111)的unicode码相加并打印总和。这是因为被视为数字类型,因此在这种情况下,运算符是通常的求和。
问题内容: 当我从终端执行该程序时,我编写的程序未打印任何内容,因此我尝试运行以下代码 这是终端,为什么它不打印出来你好。主要功能是否还在运行? 问题答案: Python不会自动调用main()(并且您需要使用sys库来获取argv)。
问题内容: 使用python从文本文件中读取行时,通常需要在处理文本之前截断末尾字符,如以下示例所示: 是否有一种优雅的方式或习惯用法来检索没有结束符的文本行? 问题答案: 该 惯用 方式在Python做,这是使用 rstrip(“\ n”) : 其他每个选项都有一个陷阱: file(’…’)。read()。splitlines() 必须立即将整个文件加载到内存中。 *如果最后一行没有EOL,则