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的文件操作有所帮助。