2017-12-18 79 views
0

我有一个文本文件。如何打印文本文件的行如果分号在末尾

Test.txt的

this is line one; this line one 

this is line two; 

this is line three 

我想打印含有分号线,但分号应该是行的末尾。

我的代码

search = open("Test.txt","r") 
for line in search : 
    if ";" in line: 
     semi = line.split(";") 
     if semi[-1] == "\n": 
      print(line) 

输出

this is line two; 

我的代码工作正常,但我希望有一个更好的方式来做到这一点。 任何人都可以告诉我简短和最pythonic的方式来做到这一点?

回答

2

可以肯定它容易

for line in search : 
    if line.endswith(';\n'): 
     print(line) 

而作为@IMCoins注意,最好使用上下文管理with关闭您的文件,你就大功告成了工作时:

with open("Test.txt","r") as test_file: 
    for line in test_file: 
     if line.endswith(';\n'): 
      print(line) 
+0

将这项工作在Python 2.7? – sam

+0

@sam是的,我测试过了。 –

+0

谢谢....现在这段代码工作正常,我认为这是最短的做法 – sam

0

在第一次使用的with关键字打开文件:

with open('foo.txt', 'r') as f: 
    for line in f: 
     if ';' in line: 
      semi = line.split(';') 
      if semi[-1] == '\n': 
       print line 

对我来说,它是在您使用内置函数时已经大部分是pythonic,使用for循环。

+0

感谢您的回复 – sam

0
if line[:-2] == ';\n': 
    print(line) 

正常工作的Python 2 也适用,如果线只是一个 '/ N'

+0

尽管这可能会回答这些问题,但您可能无法提供一些额外的细节并解释答案。在目前的状态下,这个答案是低质量的。 –

相关问题