Python:如何选择文本文件的第一行,以及第二行……?

Python: How to select the first line of a text file, and after the second…?

本问题已经有最佳答案,请猛点这里访问。

我遇到了一个关于Python的问题。我有一个文本文件(textfile1.txt),有几行例子:

1
2
3
This is the line 1
This is the line 2
This is the line 3

我可以在python脚本中以书面形式返回文本文件的所有内容:

1
2
3
4
5
6
def textFile1(self):

    my_file = open("textFile1.txt")
    my_file_contents = my_file.read()

    return my_file_contents

使用此函数(read())返回文件的所有内容

现在,我想写另一个文本文件,我用我的python程序再次调用它:

1
2
3
The line 1 of my textFile1 is: This is the line 1
The line 2 of my textFile1 is: This is the line 2
The line 3 of my textFile1 is: This is the line 3

但是我唯一能做的就是每次都写所有的内容(这是正常的,因为我返回了textfile1.txt的所有内容),但是我不知道如何只选择textfile1.txt的第1行,在第2行和第3行之后……

总而言之,我的问题是:如何选择一个文本文件中的一行,然后增加它(例如在终端中打印)?我想是这样的:

1
2
3
4
5
i=0
f = open("textFile.txt","r")
ligne = f.readline()
print ligne[i]
i=i+1

但在Python中,我不知道该怎么做。

谢谢你

更新:

谢谢你的回复,但直到现在,我还是被阻止了。偶然地,是否可以从文本文件中选择一行,尤其是使用此函数:

1
2
for line in f:
    print line.rstrip() # display all the lines but can I display just the line 1 or 2?

您想循环文件的行。文件提供了一个非常简单的界面:

1
2
for line in f:
    # Do whatever with each line.

请注意,行将包含任何尾随的换行符。

此外,通常最好在with语句中打开文件:

1
2
3
with open('textFile.txt', 'r') as f:
    for line in f:
        # Do whatever with each line.

这样可以确保在with语句完成时关闭文件,即使存在可能导致跳过显式close调用的异常,或延迟引用,从而导致文件对象的终结器延迟。


您可以一行一行地迭代文件

1
2
3
4
with open('textFile1.txt') as f:
    for line in f:
        print line
        # Write to the 2nd file textFile2.txt


1
2
3
4
5
6
7
8
9
def copy_contents(from_path, to_path):
    from_file = open(from_path, 'r')
    to_file = open(to_path, 'w')

    for no, line in enumerate(from_file.readlines()):
        to_file.write('This is line %u of my textFile: %s' % (no, line))

    from_file.close()
    to_file.close()