Python3 File(文件) 方法


Python3 File 文件方法

I. 文件的读写操作

用户在Python中进行文件读写需要使用内置的open()函数。

语法:

 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
  • mode: 打开文件的模式。
  • buffering: 设置缓冲区大小,0表示关闭缓冲,1表示行缓冲,>1表示缓冲区大小。
  • encoding: 打开文件的编码方式,当mode打开方式的最后一个字母为b时,encoding参数会被忽略。
  • errors: 不同的错误引发不同的异常,可使用该参数覆盖标准的错误处理方式。
  • newline: 区别操作系统对行末的表示,例如"\r\n"表示Windows, “\n"表示Linux。
  • closefd: 是否关闭底层的文件描述符(关闭时为True)
  • opener: 默认使用open()打开文件,可以使用自定义的函数方法来代替open()打开文件,但必须返回一个可用的文件描述符。

例子:

打开文件,读取文件内容。

>>> f = open('sample.txt', 'r')
>>> f.read()
'This is a sample file. \nIt is used for testing purposes.'
>>> f.close()  # 记得关闭文件

打开文件,写入数据。

>>> f = open('output.txt', 'w')
>>> f.write('This is the output file for testing purposes.')
>>> f.close()

II. 文件的属性操作

1. 文件对象的属性

Python中的内置方法可以用来查询文件对象的属性。

包含方法

  • file.closed:文件是否关闭
  • file.mode:已打开文件的访问模式
  • file.name:文件的名称

例子:

打开文件,获取文件的名字,访问模式以及是否关闭。

>>> f = open('sample.txt', 'r')
>>> f.name
'sample.txt'
>>> f.mode
'r'  # 读模式
>>> f.closed
False  # 文件还未关闭
>>> f.close()

2. os模块

使用Python内置的os模块,可以获取文件的状态信息,资源限制和一些系统相关的参数信息等。

包含方法

  • os.access():检验文件的访问权限。
  • os.chmod():修改文件的访问权限。
  • os.path.abspath():返回文件的绝对路径。
  • os.path.exists():检查文件是否存在。
  • os.path.getsize():返回文件的大小,以字节为单位。

例子:

读取文件的绝对路径,并检查文件是否存在及文件大小。

>>> import os
>>> abs_path = os.path.abspath('sample.txt')
>>> abs_path
'/Users/username/Documents/sample.txt'
>>> os.path.exists(abs_path)
True
>>> os.path.getsize(abs_path)
45  # 字节为单位

III. 文件的定位操作

1. seek()方法

文件的seek操作就是把操作指针移动文件流的某个位置。用户可以使用seek()方法在文件中定位到给定的偏移量。

语法:

file.seek(offset[, whence])
  • offset:偏移量,即将要去的字节位置。
  • whence:可选参数,若省略为0,意味着使用文件开头的偏移量作为文件指针,1表示使用当前位置,2表示使用文件结尾的偏移量。

例子:

对于以下文件,使用f.seek(0)可以将指针指向文件开头。如果使用f.seek(6),指针将会指向第8个字节(即字符i)。

sample file
>>> f = open('sample.txt', 'r')
>>> f.read()
'sample file\n'
>>> f.seek(6)
>>> f.read(1)
'i'
>>> f.close()

2. tell()方法

tell()方法用来获取文件读/写指针的当前位置(指针指向文件的哪个位置),即指针从文件的开始的字节数。

语法:

file.tell()

例子:

如果f.seek(0)后,使用f.tell()可以获得当前文件指针的位置,即0。

>>> f = open('sample.txt', 'r')
>>> f.read()
'sample file\n'
>>> f.seek(0)
>>> f.tell()
0
>>> f.close()

IV. 文件的关闭操作

打开文件后,需要使用close()方法关闭文件以完成文件操作。一旦文件操作完成,就应立即关闭文件。

语法:

file.close()

例子:

使用f.close()关闭文件流。

>>> f = open('sample.txt', 'r')
>>> f.close()
>>> f.closed
True

V. with语句

Python使用with语句创建一个上下文环境,自动清理所创建的对象。

with open('sample.txt', 'r') as f:
    print(f.read())

总结

本文对Python3中的文件操作进行了详细介绍,包括文件的读写操作、属性操作、定位操作、关闭操作以及with语句。希望本文对Python的文件操作有所帮助。