在读取文件python时丢弃'\ n'符号

时间:2012-04-22 16:41:31

标签: python parsing

我正在解析一个大文本文件,如果我只能以某种方式读取没有'\ n'符号的行,那么我的生活就会轻松得多。例如:

Hello
World
python的readLines()将{p}作为{'Hello\n','World\n'}返回,而我需要{'Hello','World'}。有没有办法只读取印刷的字符?

我知道可以使用正则表达式完成,但我希望有一种更简单的方法。

谢谢!

3 个答案:

答案 0 :(得分:5)

您可以使用rstrip()功能来消除尾随换行符。对于您的具体示例:

In [9]: s = {'Hello\n','World\n'}

In [10]: s
Out[10]: set(['World\n', 'Hello\n'])


In [12]: for i in s:
   ....:     print i
World

Hello


In [13]: for i in s:
   ....:     print i.rstrip()

World
Hello

此处提供更多信息:http://docs.python.org/library/string.html

您可能会在阅读文件时考虑删除换行符:

with open('data.txt') as infp:
   for line in infp:
       line = line.rstrip()
       # rest of processing

答案 1 :(得分:1)

with open('test_file.txt') as f:
    my_list = [line.rstrip() for line in f]

如果您不想存储数据,只想打印(或做任何您想做的事情),您可以这样做:

with open('test_file.txt') as f:
    for line in f:
        print line.rstrip() #or do whatever you want to

答案 2 :(得分:0)

您也可以使用切片删除换行符:

s = "Hello\n"  
print s[:-1]  
"Hello"