Python进阶(29)—文件操作(上)

◎知识点

  1. 打开文件

  2. 读文件


◎脚本练习

▽ 打开文件

"""
    把数据存储到文件中是数据存储的方式之一。
    如何将数据写入文件,并将写入到文件中的数据读取出来呢?

    读写文件之前,必须先打开文件。
    内置函数open()用于打开文件,
        第一个参数是文件的路径,必须要指定。既可以指定绝对路径,也可以指定相对路径。
        第二个参数是文件的打开方式,默认值是'r',表示以只读方式打开。
        其它参数都是带默认值的,可参考官方文档。
        函数的返回值是一个文件对象,通过该对象就可以操作文件了,例如:读文件、写文件、关闭文件等。
"""
# file = open('myfile.txt')
# file = open('myfile.txt', 'r')
# file = open('myfile2.txt')

# file = open('myfile.txt', 'w')
# file = open('myfile2.txt', 'w')

# file = open('myfile.txt', 'a')
# file = open('myfile2.txt', 'a')

# file = open('myfile.txt', 'x')
# file = open('myfile2.txt', 'x')

# file = open('myfile.txt', 'r+')
# file = open('myfile2.txt', 'r+')

Python进阶(29)—文件操作(上)

Python进阶(29)—文件操作(上)


▽ 读文件

"""
    读文件之前,必须先打开文件。
    可以调用内置函数open()并以只读方式或读写方式打开文件。返回的文件对象有三个用于读文件的方法:
    
1. read([size])
    如果不传参数,读到文件尾。
    如果传入参数,size用于指定字节数,
        当指定的字节数小于读到文件尾的字节数时,读取指定的字节数;
        当指定的字节数大于读到文件尾的字节数时,或当指定的字节数小于0,读到文件尾。
    
    如果文件较大,调用read()一次性读取整个文件会导致内存占用较大,因此,最好多次调用read(size)。
    指定的size不要超过默认缓冲区的大小,否则,可能并不能读取到指定的字节数。通过标准库中模块io
的属性DEFAULT_ BUFFER_ SIZE可以查看默认缓冲区的大小。
"""

"""
>>> import io
>>> io.DEFAULT_BUFFER_SIZE
8192    

>>> file = open('myfile.txt')
>>> file.read()
'1234567890\nabcdefghijklmn\nopqrstuvwxyz'
>>> file.close()    # 文件在使用完毕后必须要关闭

>>> file = open('myfile.txt')
>>> file.read(12)
'1234567890\na'
>>> file.read(30)   # 因为没有关闭文件,所以继续读取
'bcdefghijklmn\nopqrstuvwxyz'
>>> file.close()

>>> file = open('myfile.txt')
>>> file.read(12)
'1234567890\na'
>>> file.read(-5)
'bcdefghijklmn\nopqrstuvwxyz'
>>> file.close()
"""

"""
2. readline([size])
    如果不传参数,读到行尾。
    如果传入参数,size用于指定字节数,
        当指定的字节数小于读到行尾的字节数时,读取指定的字节数;
        当指定的字节数大于读到行尾的字节数时,或当指定的字节数小于0,读到行尾。
    总之,最多读到行尾。
"""

"""
>>> file = open('myfile.txt')
>>> file.readline()
'1234567890\n'
>>> file.readline(7)
'abcdefg'
>>> file.readline(10)
'hijklmn\n'
>>> file.readline(3)
'opq'
>>> file.readline(-5)
'rstuvwxyz'
>>> file.close()
"""

"""
3. readlines([size])
    如果不传参数,读到文件尾,返回每一行组成的列表。
    如果传入参数,size用于指定字节数,
        当指定的字节数小于读到文件尾的字节数时,一直读取到最后一个字符所在行的行尾;
        当指定的字节数大于读到文件尾的字节数时,或当指定的字节数小于0,读到文件尾。

    如果文件较大,调用readlines()一次性读取整个文件会导致内存占用较大,因此,最好多次调用
readlines(size)。
    指定的size不要超过默认缓冲区的大小。
"""

"""  
>>> file = open('myfile.txt')
>>> file.readlines()
['1234567890\n', 'abcdefghijklmn\n', 'opqrstuvwxyz']
>>> file.close()

>>> file = open('myfile.txt')
>>> file.readlines(8)
['1234567890\n']
>>> file.readlines(50)
['abcdefghijklmn\n', 'opqrstuvwxyz']
>>> file.close()
>>> file = open('myfile.txt')
>>> file.readlines(8)
['1234567890\n']
>>> file.readlines(-5)
['abcdefghijklmn\n', 'opqrstuvwxyz']
>>> file.close()    
"""


◎脚本地址:https://github.com/anzhihe/learning/blob/master/python/practise/learn-python/python_advanced/file_operations.py

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/5476.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注