一. Python程序中, 文件的处理步骤是什么?
打开 open(\"文件\",\"模式\") 读写 2.1 读 f.read(字节数) 字节数默认是文件内容长度 下标会自动后移 f.readline([limit]) 读取一行数据 limit: 限制的最大字节数 f.readlines() 会自动的将文件按换行符进行处理 将处理好的每一行组成一个列表返回 for in 可以直接遍历 f 本身 也可以遍历行列表 2.2 写 f.write(\"内容\") 返回值是写入的字节长度 关闭 f.close() 关闭文件 为什么需要关闭? 打开状态, 会占用系统资源 会把缓冲区内容清空到磁盘文件中
二. 文本打开时设置的模式有哪些? 分别代表什么意思?
基础模式 r 以只读方式打开文件, 这是默认模式 文件的指针将会放在文件的开头 注意: 文件不存在, 会报错 w 以只写方式打开文件 文件的指针将会放在文件的开头 所以, 写入的新内容, 会覆盖旧的内容 注意: 文件不存在, 会自动创建一个新文件 a 以追加方式(只写)打开文件 文件的指针将会放在文件结尾 所以, 写入的内容, 会新增到文件末尾 注意:文件不存在, 会自动创建一个新文件 组合模式-增加b rb wb ab 以二进制格式进行操作文件读写 如果文件是二进制文件, 则选择此项 例如: 图片, 视频, 音频 ... 组合模式-增加+ r+ w+ a+ rb+ rw+ ra+ 代表都是以 \"读写模式\" 进行打开 其他特性基本和 + 前面的模式一致 但是关于部分操作, 有细节区别
三. os模块中提供的常用文件操作?
模块 import os 信息获取操作 .closed: 返回true如果文件已被关闭,否则返回false .name: 返回文件的名称 其他操作 3.1 重命名 os.rename(‘old_name’, \'new_name\') 3.2 删除 os.remove(\'文件名\') 3.3 创建文件夹 os.mkdir(\"文件夹名称\") 3.4 获取当前目录 os.getcwd() 3.5 改变默认目录 os.chdir(\"目标目录\") 3.6 获取目录列表 os.listdir(\"./\")
四. 代码实现: 大文件拷贝操作
注意: 不能一次性读取大文件内容, 容易造成内存峰值
import os os.chdir(\"files\") # 1. 只读模式, 打开要复制的文件 # 追加模式, 打开副本文件 source_file = open(\"d.txt\", \"r\", encoding=\"utf-8\") dst_file = open(\"d_bat.txt\", \"a\", encoding=\"utf-8\") # 2. 从源文件中读取内容 # 写入到目标文件中, # 错误写法: 针对于大文件, 不应一次性读取全部内容 # # content = source_file.read() # # dst_file.write(content) while True: content = source_file.read(1024) if len(content) == 0: break print(\"----\", content) dst_file.write(content) # 3. 关闭源文件和目标文件 source_file.close() dst_file.close()
五. 代码实现: 假设一个文件夹中有很多不同格式的文件, 要求: 将不同格式的文件, 划分到不同格式的文件夹下;
例如: a.png b.txt c.avi d.png
划分后:
png文件夹: a.png d.png
txt文件夹: b.txt
avi文件夹: c.avi
import os import shutil # 目标路径 path = \"files2\" if not os.path.exists(path): exit() os.chdir(path) file_list = os.listdir(\"./\") # print(file_list) # 1. 遍历所有的文件(名称) for file_name in file_list: # print(file_name) # 2. 分解文件的后缀名 # 2.1 获取最后一个.的索引位置 xx.oo.txt index = file_name.rfind(\".\") if index == -1: continue # print(index) # 2.2 根据这个索引位置, 当做起始位置, 来截取后续的所有字符串内容 extension = file_name[index + 1:] print(extension) # 3. 查看一下, 是否存在同名的目录 # 4. 如果不存在这样的目录 -> 直接创建一个这样名称的目录 # 5, 目录存在 -> 移动过去 if not os.path.exists(extension): os.mkdir(extension) shutil.move(file_name, extension)
继续阅读与本文标签相同的文章
-
开发者必读 · 周报 | 001期
2026-05-19栏目: 教程
-
左手代码右手滑板 支付宝这个程序员有些酷
2026-05-19栏目: 教程
-
标记您的阿里云资源
2026-05-19栏目: 教程
-
无需开发,IT事件接入钉钉的方法详解
2026-05-19栏目: 教程
-
make: [packet.o] Error 127
2026-05-19栏目: 教程
