【Python】文件管理

 

目录

 

文件管理

1. 文件对象

2.标准文件

3. 文件系统

4. os.path 模块中的路径名访问函数


文件管理

简介:内建函数 open()提供了初始化输入/输出(I/O)操作的通用接口. open() 内建函数成功打开文件后时候会返回一个file对象, 否则引发异常错误。

  1. Open()

语法:

file_object = open(file_name, access_mode='r', buffering=-1)

 

其中file_name 是包含要打开的文件名字的字符串, 它可以是相对路径或者绝对路径.

可选变量access_mode 也是一个字符串, 代表文件打开的模式. 通常, 文件使用模式 'r', 'w', 或是 'a'模式来打开, 分别代表读取, 写入和追加. 还有个 'U' 模式, 代表通用换行符支持。可以相互组合。

+

读+写

r

读取,(文件已存在)

w

写入(先清空,后创建),

a

追加(追加到末尾)

u

通用换行符支持(文件已存在)

b

二进制模式访(Unix系统下可省,为了兼容,加上)

 

可选参数 buffering 用于指示访问文件所采用的缓冲方式. 其中 0 表示不缓冲, 1表示只缓冲一行数据, 任何其它大于 1 的值代表使用给定值作为缓冲区大小。

 

1. 文件对象

该文件对象的后续操作都将通过这个"句柄"进行,文件方法可以分为四类: 输入, 输出, 文件内移动。

文件对象方法

操作

文件对象方法

操作

file.close()

关闭文件。

file.flush()

刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。

file.fileno()

返回一个整型的文件描述符(file descriptor FD 整型), 可用os模块的read方法等一些底层操作上。

file.isatty()

判断 file 是否是一个类 tty 设备,如果文件连接到一个终端设备返回 True,否则返回 False

file.next()

返回文件下一行。

file.read((size=-1])

从文件读取指定的字节数,如果未给定或为负则读取所有。

file.readline([size])

读取整行,包括行结束符 "\n" 字符。

file.readlines([sizeint])

读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。缓冲器只能为4K 的倍数, sizhint 15k,则最后返回的可能是16k

file.seek(offset[,whence])

设置文件当前位置在文件中移动文件指针, whence ( 0 代表文件其始, 1 代表当前位置, 2 代表文件末尾)偏移 off 字节。

file.tell()

返回文件当前位置。

file.truncate([size])

从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后后面的所有字符被删除,其中 Widnows 系统下的换行代表2个字符大小。

file.write(str)

将字符串写入文件,返回的是写入的字符长度。

file.writelines(sequence)

向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

2.标准文件

程序一执行, 那么你就可以访问三个标准文件. 它们分别是标准输入(一般是键盘), 标准输出(到显示器的缓冲输出)和标准错误(到屏幕的非缓冲输出). (这里所说的"缓冲"和"非缓冲"是指 open() 函数的第三个参数.)。stdin , stdout 和 stderr。

 

3. 文件系统

对文件系统的访问大多通过 Python 的 os 模块实现. 除了对进程和进程运行环境进行管理外, os 模块还负责处理大部分的文件系统操作,功能包括删除/重命名文件, 遍历目录树, 以及管理文件访问权限等.

os模块:

处理对象

函数

描述

文件处理

 

 

 

mkfifo()/mknod()a

创建命名管道/创建文件系统节点

 

remove()/unlink()

Delete

 

file

删除文件

 

rename()/renames()b

重命名

 

*statc()

返回文件信息

 

symlink()

创建符号链接

 

utime()

更新时间戳

 

tmpfile()

创建并打开('w+b')一个新的临时文件

 

walk()a

生成一个目录树下的所有文件名

目录/文件夹

 

 

 

chdir()/fchdir()a

改变当前工作目录/通过一个文件描述符改变当前工作目录

 

chroot()d

改变当前进程的根目录

 

listdir()

列出指定目录的文件

 

getcwd()/getcwdu()a

返回当前工作目录/功能相同, 但返回一个Unicode对象

 

mkdir()/makedirs()

创建目录/创建多层目录

 

rmdir()/removedirs()

删除目录/删除多层目录

访问/权限

 

 

 

access()

检验权限模式

 

chmod()

改变权限模式

 

chown()/lchown()a

改变owner和group ID/功能相同, 但不会跟踪链接

 

umask()

设置默认权限模式文件描述符操作

 

open()

底层的操作系统

文件描述符

 

 

 

open

(对于文件, 使用标准的内建open()函数)

 

 

read()/write()

根据文件描述符读取/写入数据

 

 

dup()/dup2()

复制文件描述符号/功能相同, 但是是复制到另一个文件描述符设备号

 

 

makedev()a

从major和minor设备号创建一个原始设备号

 

 

major()a /minor()a

从原始设备号获得 major/minor 设备号

 

           

 

4. os.path 模块中的路径名访问函数

os.path模块

函数

描述

分隔

 

basename()

去掉目录路径,返回文件名

dirname()

去掉文件名,返回目录路径

join()

将分离的各部分组合成一个路径名

split()

返回(dirname(),basename())元组

splitdrive()

返回(drivename,pathname)元组

splitext()

返回(filename,extension)元组

信息

 

getatime()

返回最近访问时间

getctime()

返回文件创建时间

getmtime()

返回最近文件修改时间

getsize()

返回文件大小(以字节为单位)

查询

 

exists()

指定路径(文件或目录)是否存在

isabs()

指定路径是否为绝对路径

isdir()

指定路径是否存在且为一个目录

isfile()

指定路径是否存在且为一个文件

islink()

指定路径是否存在且为一个符号链接

ismount()

指定路径是否存在且为一个挂载点

samefile()

两个路径名是否指向同个文件

参考:

[1]《Python核心编程第二版》

[2] 菜鸡教程

展开阅读全文

没有更多推荐了,返回首页