python 之 文件I/0
打开和关闭文件
open()函数
必须要open()内置函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
语法 file object=open(file_name [,access_mode] [,buffering])
file_name:变量是一个包含了你要访问的文件名称的字符串值
access_mode:决定了打开文件的模式:只读,写入,追加等,默认是只读 (R)
buffering:如果buffering的值被设为0,就不会寄存。如果buffering的值取值1,访问文件时会寄存行。
若是大于1,表明是寄存区的大小。
若是负值,则缓冲大小则为系统默认
File对象的属性
文件打开后就存在一个file对象,可以得到关于文件的各种信息
实际简单案例
fo = open("foo.txt", "wb") print "文件名: ", fo.name print "是否已关闭 : ", fo.closed print "访问模式 : ", fo.mode
输出:
文件名: foo.txt
是否已关闭 : False
访问模式 : wb
close()方法
语法:
fileObject.close();
案例:
fo.close()
write()方法
语法: fileObject.write(string) 案例: fo.open("foo.txt","wb")//会报错,讲wb改为 w+ fo.write("www.runoob.com!\nVery good site!\n") fo.close()
read()方法
该方法从一个打开的文件中读取一个字符串,可以是二进制数据而不仅是文字
语法:
fileObject.read([count])
count:表示读取的字节,若是不写则会尽可能读取,与打开文件的缓存大小有关
案例:
fo.open("foo.txt","r+")
str=fo.read(10)
print(str)
fo.close()
文件定位
tell()方法:显示文件的当前位置。
seek(offset [,from])方法 改变当前文件内的当前位置。offset变量表示要移动的字节数。from变量指定开始移动字节的参考位置
from=0:以文件的开头这么多字节作为移动字节的参考位置
from=1:以当前位置作为参考位置
from=2:将该文件的末尾将作为参考位置
fo=open("foo.txt","r+") str=fo.read(10); print(str) #查找当前位置 position=fo.tell() print("当前文件内位置:",position) position=fo.seek(4,0); str=fo.read(10); print("移动后的文件内位置",str) position=fo.tell() print("移动后文件内位置:",position) fo.close() 输出: www.runoob 当前文件内位置: 10 移动后的文件内位置 runoob.com 当前文件内位置: 14
重命名和删除文件
python的os模块提供了文件的处理方法,需要导入该模块
os.rename()方法
语法: os.rename(current_file_name,new_file_name) 案例: os.rename("foo.txt","test2.txt")
os.remove()方法
语法:
os.remove(file_name)
python里的目录:
mkdir()方法:在当前目录下创建新的目录文件
语法: os.mkdir("newdir") 案例: os.mkdir(“test”)
chdir()方法:用来改变当前的目录
语法: os.chdir("newdir") 案例:#将当前目录修改为/home/newidr os.chdir("/home/newidr")
getcwd()方法:用来显示当前的目录
语法:
os.getcwd()
案例:
print(os.getcwd())
rmdir()方法:用来删除目录
语法: os.rmdir('dirname') 案例:删除目录/tmp/test os.rmdir("/tmp/test")
File对象:提供了操作文件的方法
Os对象:提供了操作目录的方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现