dafengqixi 发表于 2014-07-14 23:00

python 读取文件,怎样将文件中的\r\n转换成0d 0a ?

我想从文件中读取一行内容,这些内容类似abc\r\n test ,读取后显示就是abc\r\n test, 但是我想把\r\n当作转义字符处理,请问怎么操作

q1208c 发表于 2014-07-15 08:13

:em14::em14:>>> ord("\n")
10
>>> ord("\r")
13
>>>

dafengqixi 发表于 2014-07-15 14:58

回复 2# q1208c
您肯能理解错我的意思了,我从文件中读取的\r\n是以四个字节存储在内存中分别是'\' 'r' '\' 'n', 而我们在例如 print '\r\n'这种句子中编译器会把他们当做转义字符处理,直接就变成0d 0a了,所以我想问的是怎么把以可见字符出现的\r\n, 变成程序中的转义字符, 希望能有哪个库已经实现这个功能,谢谢您的回答

   

ssfjhh 发表于 2014-07-15 15:06

本帖最后由 ssfjhh 于 2014-07-15 15:53 编辑

In : d = {'\\r': '\r', '\\t': '\t', '\\n': '\n'}

In : s
Out: 'abc\\r\\n test'

In : re.sub(r'\\\w', lambda m: d, s)
Out: 'abc\r\n test'

In : 这是不是你想要的?

q1208c 发表于 2014-07-15 15:38

:em14: :em14:$ python
Python 2.6.6 (r266:84292, Nov 21 2013, 12:39:37)
on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = '\\'
>>> b = 'n'
>>> c = '\\'
>>> d = 'r'
>>> a
'\\'
>>> b
'n'
>>> c
'\\'
>>> d
'r'
>>> xx = eval("'''" + a + b + c + d + "'''")
>>> for x in xx:
...   ord(x)
...
10
13
>>> xx
'\n\r'
>>>
回复 3# dafengqixi


   

ssfjhh 发表于 2014-07-15 15:57

回复 5# q1208c


    这真是一个好办法,我怎么就没有想到呢。print(eval("'''{}'''".format(s)))

dafengqixi 发表于 2014-07-15 16:01

回复 5# q1208c

受教了,我是刚接触Python, 懂的不多,我刚才也找到了一个方法,就是用字符串的查找替换功能


    for (num, line) in enumerate(f):
      line = line.replace('\\r', '\r')
      line = line.replace('\\n', '\n')
这样也能替换成转义字符

q1208c 发表于 2014-07-15 17:13

回复 6# ssfjhh

抄来的. :mrgreen:
   
页: [1]
查看完整版本: python 读取文件,怎样将文件中的\r\n转换成0d 0a ?