Python 如何添加r'&引用';如果文件的每一行没有';t以r'结尾&引用';
我想让Python 如何添加r'&引用';如果文件的每一行没有';t以r'结尾&引用';,python,windows,python-2.7,encoding,carriage-return,Python,Windows,Python 2.7,Encoding,Carriage Return,我想让.txt文件的每一行都以“结尾,但文件的编码是gb2312或gbk,因为中文是包含在内的。因此我创建了一个名为heheda.txt的文件,其内容如下(每行末尾包含一个返回): 那么我尝试的是如下: for line in open('heheda.txt', 'r'): if not line[-2] == r'"': print line line = line[:-1] + r'"' + line[-1:] print line
.txt
文件的每一行都以“
结尾,但文件的编码是gb2312
或gbk
,因为中文是包含在内的。因此我创建了一个名为heheda.txt
的文件,其内容如下(每行末尾包含一个返回):
那么我尝试的是如下:
for line in open('heheda.txt', 'r'):
if not line[-2] == r'"':
print line
line = line[:-1] + r'"' + line[-1:]
print line
它返回:
shan里有个庙
shan里有个庙"
laohe尚
laohe�"�
shan里有个庙
shan里有个庙"
laohe尚
laohe�"��
我不知道为什么每行的结尾都是line[-2]
,因为我已经尝试了line.endswith(r'')
和line[-1]==r'''''
。第一句的格式正确,而第二句的格式错误(�代码>)
然后我试着用rb
以二进制模式阅读,这让我再次感到惊讶:
a_file = open(data_path+'heheda.txt', 'rb')
for line in a_file:
if line[-3] != r'"':
print line
line = line[:-2] + r'"' + line[-2:]
print line
它返回:
shan里有个庙
shan里有个庙"
laohe尚
laohe�"�
shan里有个庙
shan里有个庙"
laohe尚
laohe�"��
这一次,我不得不使用行[-3]!=r'
作为判断句子是否以“
结尾的条件。
我不知道会发生什么。
顺便说一下,我在Windows7中使用python 2.7.11
有人知道发生了什么吗???Windows使用“\r\n”
作为换行符,该换行符通过文本读取模式自动转换为“\n”
。但您的最后一行没有换行符
只需去除换行符,然后测试“
:
Windows使用“\r\n”
作为换行符,该换行符在文本读取模式下自动转换为“\n”
。但最后一行没有换行符
只需去除换行符,然后测试“
:
Windows使用\r\n,而不是\n\rAfter使用repr()
,我发现最后一行就像你说的那样没有\r\n
。而且rstrip()
可以在字符串的末尾过滤'\r\n',\t
,这太神奇了!Windows使用\r\n,而不是\r\rAfter使用repr()
,我发现最后一行没有你说的\r\n
结尾。而且rstrip()
可以在字符串结尾过滤“\r\n”,\t
,这太神奇了!为了更好地看到发生的事情,使用print repr(line)而不是print line谢谢你提醒我repr()
让我知道真正发生了什么!为了更好地了解发生了什么,请使用print repr(line)而不是print line谢谢你提醒我使用repr()
让我知道真正发生了什么!