打开和关闭文件

在python中对一个文件进行操作,分三大步骤:
打开—>操作—>关闭

在做这个实验时,我们自己可以先创建一个目录,易懂一个文件到目录下,用于实验:

python windows 权限 python打开文件权限_文件指针

python windows 权限 python打开文件权限_打开文件_02

文件对于超级用户可写、可读,对于普通用户是可写:

python windows 权限 python打开文件权限_python_03

打开文件:python提供了内置函数open( )打开一个文件。

创建一个f对象,通过调用它来进行读写。

# 1.打开文件
f = open('/test/passwd')

python windows 权限 python打开文件权限_python windows 权限_04


各个参数的解释如下:

  • name:name变量是一个包含了必要访问的文件名称的字符串值。
  • mode:mode决定了打开文件的模式,只读、写入、追加等。这个参数是非强制的,默认文件访问模式为只读(r)。
  • encoding:编码

不同模式打开文件的完全列表:

r

以只读方式打开文件。如果读取文件不存在,则会报错。文件的指针将会放在文件的开头。这时默认模式。

w

以只写方式打开文件。当文件存在时,会清空文件内容并写入新的内容;当文件不存在时,会创建新文件并写入内容。

a

以追加只写方式打开文件。当文件存在时,不会清空文件内容,会在文件末尾追加;当文件不存在时,不会报错,不会创建新的文件并写入内容。

r+

以读写方式打开文件。文件指针将会放在开头。当文件存在时,会清空文件;当文件不存在时,会报错。

w+

以读写方式打开文件。当文件存在时,会清空文件;当文件不存在时,不报错,会创建新文件并写入。

a+

以追加读写方式打开文件。当文件存在时,不会清空文件内容,文件指针会放在文件末尾,在文件末尾追加,读文件时,一定要移动文件指针;当文件不存在时,创建新文件用于读写。(a/a+在文件对象创建时,指针默认就在文件末尾。)

当一个文件被打开后,有一个file对象,可以得到有关该文件的各种信息。
read( ) :从一个打开的文件中读取一个字符串。python字符串可以是二进制数据,而不仅仅是文字。
close( ):刷新缓冲区里还没写入的信息,并关闭该文件,这之后便不能再写入。当一个文件对象的引用被重新指定给另外一个文件时,python会关闭之前的文件。

# 1.打开文件
f = open('/test/passwd')##以字节模式打开文件
# 2.操作
content = f.read()#读取文件全部内容,并赋值给变量content
print(content)
# 3.关闭文件
f.close()

下图,从文件的开头开始读入,直到读到文章末尾。

python windows 权限 python打开文件权限_文件指针_05

文件定位

tell( ) :告诉当前文件指针的位置,即下次读写会发生在文件开头这么多字节之后。
seek( offset,[,from] ) :移动当前文件指针。offset:表示要移动的字节数;from指定开始移动字节的参考位置。如果from被设为0,这就意味着将文件的开头作为移动字节的参考位置,如果设为1,则使用当前位置作为参考位置;如果设为2,则该文件末尾将作为参考位置。

# 1.打开文件
f = open('/test/passwd')##以字节模式打开文件
# 2.操作
content = f.read()#读取文件全部内容,并赋值给变量content
print(content)
print(f.tell())
# 3.关闭文件
f.close()

python windows 权限 python打开文件权限_python_06

# 1.打开文件
f = open('/test/passwd')##以字节模式打开文件
# 2.操作
print(f.tell())
f.seek(0,0)
print(f.tell())
f.seek(1,0)
print(f.tell())
# 3.关闭文件
f.close()

python windows 权限 python打开文件权限_打开文件_07

判断文件对象拥有的权限

# 1.打开文件
f = open('/test/passwd')##以字节模式打开文件
# 2.操作
print(f.writable())
print(f.readable())
# 3.关闭文件
f.close()

python windows 权限 python打开文件权限_python windows 权限_08