Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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 如果分号在末尾,如何打印文本文件的行_Python - Fatal编程技术网

Python 如果分号在末尾,如何打印文本文件的行

Python 如果分号在末尾,如何打印文本文件的行,python,Python,我有一个文本文件 Test.txt this is line one; this line one this is line two; this is line three this is line two; 我想打印包含分号的行,但分号应该在行的末尾 我的代码 search = open("Test.txt","r") for line in search : if ";" in line: semi = line.split(";") if

我有一个文本文件

Test.txt

this is line one; this line one

this is line two;

this is line three
this is line two;
我想打印包含分号的行,但分号应该在行的末尾

我的代码

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

this is line one; this line one

this is line two;

this is line three
this is line two;
我的代码运行良好,但我希望有更好的方法来实现这一点。 有谁能告诉我一个最简单的方法吗

当然更容易

for line in search :
    if line.endswith(';\n'):
        print(line)
如前所述,最好使用上下文管理器
在完成工作后关闭文件:

with open("Test.txt","r") as test_file:
    for line in test_file:
        if line.endswith(';\n'):
            print(line)
当然更容易

for line in search :
    if line.endswith(';\n'):
        print(line)
如前所述,最好使用上下文管理器
在完成工作后关闭文件:

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

首先使用
with
关键字打开文件:

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

对我来说,当您使用内置函数时,它已经基本上是python式的,带有
For
循环。

首先使用
with
关键字打开文件:

with open('foo.txt', 'r') as f:
    for line in f:
        if ';' in line:
            semi = line.split(';')
            if semi[-1] == '\n':
                print line
if line[:-2] == ';\n':
    print(line)
对我来说,当您使用内置函数时,它已经基本上是python式的,带有
For
循环

if line[:-2] == ';\n':
    print(line)
适用于Python2和Python3 如果行仅为“/n”,也可以使用

适用于Python2和Python3
如果这行代码只是一个“/n”

@sam,也可以用。是的,我已经测试过了。谢谢……现在这段代码运行良好,我认为这是最短的方法。我建议您小心“短代码”。越短越好。但是,越清晰越好。:)Spielmeister答案中的切片表示法在这里也适用,因为
是“显而易见的”\n'
是两个字符长-但是任何更长的字符都需要
结尾,使用
@sam是的,我已经测试过了。谢谢……现在这段代码运行良好,我认为这是最短的方法。我建议您注意“短代码”。越短越好。但是,越清晰越好。:)Spielmeister答案中的切片表示法在这里也适用,因为
是“显而易见的”\n'
有两个字符长-但任何更长的字符都需要
结尾
。虽然这可能会回答问题,但您可能不想提供一些额外的细节并解释答案。在当前状态下,此答案的质量较低。虽然这可能会回答问题,但您可能不想提供一些额外的细节并解释答案。在目前的状态下,这个答案是低质量的。