Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何添加r'&引用';如果文件的每一行没有';t以r'结尾&引用';_Python_Windows_Python 2.7_Encoding_Carriage Return - Fatal编程技术网

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()
让我知道真正发生了什么!