python中文件的读入操作

1.文件的打开和关闭

假设我们有一个文件,名为"test.txt",
内容为:

40
50
60

用python打开这个文件有两种操作:
方法1

try:
    f = open('test,txt', 'r')
    print(f.read())
finally:
    if f:
        f.close()

文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现:

方法2:

with open("test.txt")  as f:
     f.read()

这种带有with的方式系统可以自动关闭文件,不需要手动关闭。

2.文件的读取(read(),readline(),readlines())

在上面的代码执行后,f是一个文件的object对象,我们需要用内置的函数读取文件,文件的读取有三种方式:
read():

with open("test.txt")  as f:
     a = f.read()
     print(a)
     print(type(a))
###输出
40
50
60
<class "str">

read()函数读入的是一个大字符串
read()的好处:

  • 方便、简单
  • 一次性独读出文件放在一个大字符串中,速度最快

read()的坏处:

  • 文件过大的时候,占用内存会过大

readline():
:

with open("test.txt")  as f:
     a = f.readline()
     print(a)
     print(type(a))
###输出
40

<class "str">

readline是逐行读入,40后面有一行空格是因为文档本身第一行后面是带有一行换行符的。
readline()的利端:

  • 占用内存小,逐行读取

readline()的弊端:

  • 由于是逐行读取,速度比较慢

readlines()

with open("test.txt")  as f:
     a = f.readlines()
     print(a)
     print(type(a))
###输出
['40\m','50\n','60\n']
<class "list">

readlines()是一次读取全部内容,返回的是一个List数组,所以我们在使用时可以直接用for遍历

readlines()的利端:

  • 一次性读取文本内容,速度比较快

readlines()的弊端:

  • 随着文本的增大,占用内存会越来越多
发布了10 篇原创文章 · 获赞 0 · 访问量 99

猜你喜欢

转载自blog.csdn.net/xcpython/article/details/103867444