在python中读取.txt文件

问题描述

我对python中的代码有疑问。我想读取一个.txt文件。我使用代码

f = open('test.txt','r')  # We need to re-open the file
data = f.read()

print(data)

我只想读取此.txt文件的第一行。我用

f = open('test.txt','r')  # We need to re-open the file
data = f.readline(1)

print(data)

但是我看到在屏幕上仅显示该行的第一个字母。

您能帮我阅读该行的所有字母吗? (我的意思是阅读整个.txt文件的行)

解决方法

with open("file.txt") as f:
   print(f.readline())

这将使用with上下文块打开文件(当我们完成操作后,它将自动关闭文件),并读取第一行,与以下内容相同:

f = open(“file.txt”)
print(f.readline())
f.close()

您尝试使用f.readline(1)将不起作用,因为该参数用于确定文件中要打印多少个字符,因此只会打印第一个字符。

第二种方法:

with open("file.txt") as f:
   print(f.readlines()[0])

或者您也可以执行上述操作,这将获得行列表并仅打印第一行。

要阅读第五行,请使用

with open("file.txt") as f:
   print(f.readlines()[4])

或者:

with open("file.txt") as f:
   lines = []
   lines += f.readline()
   lines += f.readline()
   lines += f.readline()
   lines += f.readline()
   lines += f.readline()
   print(lines[-1])

-1代表列表的最后一项

了解详情:

,

您的第一次尝试快到了,您应该执行以下操作:

f = open('my_file.txt','r')
line = f.readline()
print(line)
f.close()

一种更安全的文件读取方法是:

with open('my_file.txt','r') as f:
    print(f.readline())

两种方法都只会打印第一行。

您的错误是您将1传递给readline,这意味着您想要读取1的大小,该大小仅是一个字符。请参阅https://www.w3schools.com/python/ref_file_readline.asp

,

在您的建议下,我尝试了此方法,并且该方法有效:

f = open('test.txt','r')
data = f.readlines()[1]

print(data)
,

改为使用with open(...)

with open("test.txt") as file:
    line = file.readline()
    print(line)
,

保留.title,不带参数。

它将以字符串形式返回第一行,并将光标移至第二行。

下次使用f.readline()时,它将返回第二行并将光标移至下一行,依此类推...