文件基本操作
一、文件
持久储存:
保存内存中数据都是易丢失的,只有保存在硬盘中才能持久的存储,保存在硬盘中的基本方法就是把数据写入文件中
file = open("text.txt","w+") #打开文件 file.write("hello python !!!") #写入文件 file.flush() #保存文件 print(file.tell()) #查看文件指针 print(file.seek(0)) #移动文件指针 print(file.read()) #读取文件 print(file.readline()) #每次只能读取一行 # print(file.readlines() ) #把每一行的内容读取出来当成一个元素,放到一个列表里面 file.close() #关闭文件 16 0 hello python !!!
with open("text.txt","w+") as f: #不需要关闭 会对文件自动保存和关闭 f.write("hello python !!!") f.flush() f.tell() f.seek(0) print(f.read()) hello python !!!
二、文件打开的模式
三、其他模式
rb rb+ wb wb+ ab ab+
加个b的作用:以二进制的格式打开文件,进行上述操作 。
上下文管理
通过这两个方法可以方便的实现上下文管理
with会把 __enter__ 的返回值赋值给 as 后的变量
class MyClass: #上下文管理器 def __enter__(self): #进入 进入时需要执行的代码,相当于准备工作 print("开始运行的时候调用了我") return "开始了" def __exit__(self, exc_type, exc_val, exc_tb): #退出 退出时需要执行的代码,相当于收尾工作 print("结束运行的时候调用了我") with MyClass() as a: #使用with打开文件,则文件不需要自己关闭,会自动的关闭 print(a) for i in range (1,6): print(i) 开始运行的时候调用了我 开始了 1 2 3 4 5 结束运行的时候调用了我
IO流
一、StringIO
StringIO在内存中如同打开文件一样操作字符串,因此也有文件的很多方法
当创建的StringIO调用 close() 方法时,在内存中的数据会被丢失
import io sio = io.StringIO #创建IO操作 sio.write('hello python') #写入 # sio.seek(0) # print(sio.read()) print(sio.getvalue()) #读取 sio.close()
二、BytesIO
BytesIO 和 StringIO 类似,但是BytesIO操作的是 Bytes数据
import io sio = io.BytesIO #创建IO操作 sio.write(b"abcd") #写入 # sio.seek(0) # print(sio.read()) print(sio.getvalue()) #读取 sio.close()
使用工具
一、os 操作系统交互
os 模块提供python和操作系统交互的接口
os 提供了Python和操作系统交互方式,只要是和操作系统相关,就可以尝试在os模块中找方法
import os os.system("ls") #直接调用系统命令 os.system("pwd") #通用路径操作 import os os.path <module 'posixpath' from '/usr/lib/python3.5/posixpath.py'> os.path.join("/home/pyvip","py_case1") '/home/pyvip/py_case1' #文件目录操作 os.mkdir("/home/pyvip/projects/home/pyvip/projects/基础班/ly") os.rename("ly","ly1")
二、shutil 高级文件操作
shutil 模块提供了许多关于文件和文件集合的高级操作
import shutil shutil.copytree("ly1","lll") #复制文件件 shutil.move("with.py","lll") #移动文件 shutil.rmtree("lll") #删除文件夹