推荐书籍
python核心编程(第二版)
python Cookbook
流畅的编程(Fluent Python)
文件操作
1. 文件操作
常见的文件类型:
- txt
- csv
- json
- html
- mp4
文件的操作流程
- 打开 ----> open()
- 读写 ----> read()/write()
- 关闭 ----> close()
用途 | 方法 | 功能 |
---|---|---|
打开文件 | open(file) | 打开文件 |
关闭文件 | close() | 关闭文件 |
读写文件内容 | f.read([size]) | 从文件中读取指定的字节数;若未指定,读取所有。 |
f.readline([size]) | 读取整行,包括换行符“\n” | |
f.readlines([size]) | 读取所有行,并返回列表 | |
f.write(str) | 将字符串写入文件,并返回字符串长度 | |
f.writelines(seq) | 向文件写入一个序列字符串列表。如果需要换行,需要自己加入换行符“\n” | |
f.flush() | 刷新文件缓冲,直接把内如缓冲的数据写入文件 | |
文件的定位 | f.seek(offset) | 设置文件的当前位置,即指针位置 |
f.tell() | 返回文件的当前位置,即指针位置 |
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
文件的打开与关闭
内置函数:open(),创建一个file对象,之后才可以用它调用相关的方法
格式:
file_object = open(file,[,mode],[,encoding = ‘utf-8’],[,buffering])
解释:
- file_object ----> open() 返回的文件对象
- file ----> 一个要打开的文件
- mode ----> 指定模式:如只读,写入,追加……。一般默认为只读。
- encoding ----> 指定文件编码,usually,‘utf-8’/‘GBK’
- buffering ----> 若设置为0,不会有寄存;设为1,访问文件时会寄存行;设为大于1的数,表明是寄存区的缓冲大小;设为负数,则寄存区的缓存区大小为系统默认。
文件对象的属性
属性 | 描述 |
---|---|
f.name | 返回文件名称 |
f.mode | 返回打开文件的访问模式 |
f.closed | 如果文件已关闭,返回True;否则,返回False |
文件的关闭
f.close()
节省计算机资源提高性能,使用完文件之后,关闭它。
文件的读写
读
- f.read([size])
- 从文件指针处读取,把指针后的内容读取出来。
- 传递size,指定读取的字节数。
- readline()
- 每次读取一行;返回的是一个字符串对象,保持当前行的内存
- 缺点:比readlines()慢得多
- readlines()
- 一次性读取整个文件;自动将文件内容分析成一个行的列表。
写
- write()
- 只支持str类型的写入
- writelines()
- writelines()中的参数只有一个。不同于write(),writelines()支持str同时也支持list写入
- 如果使用list写入txt文件,可以写入多行;如果使用str写入txt文件,则只能写入一行
定位读取
- f.tell
- 获取文件的当前位置。
- f.seek()
- seek(offset[,from])
- offset,要移动的字节数
- from,指定偏移的参考位置
- 0 ----> 从头开始偏移
- 1 ----> 当前位置偏移
- 2 ----> 从末尾偏移
- seek(offset[,from])
模块(module):
开发过程中,程序代码越来越多,如果在一个文件里,代码会越来越长——>代码不易维护
在python中,一个.py文件就可以称一个模块:
即:
1.包含相应功能的函数及其变量,.py则以”.py"为后缀名
2.模块可以为其他的程序引用,
os模块
os模块是python标准库中用于访问操作系统功能的模块
使用OS模块提供的接口,能够实现跨平台访问
最常见的操作:
1.目录的操作
2.判断
系统操作
os.sep:用于查看系统路径的分隔符;
Windows——>’\’
ubuntu——>’/’
os.name:显示我们正在使用的平台
os.getenv()–>读取环境变量(envirnoment)
os.getcwd()–>获取当前路径
目录操作—增删改查(direction)
os.listdir():返回指定目录下的所有文件和目录名