Python 语法基础 IO
·
文章目录
无序导入任何模块,直接写就可以
一 打开和关闭
基础
f = open("IOTest.txt")#默认路径在项目根路径下,可以填完整路径来指定别的位置,现在默认是只读模式,别人可以再打开这个文件
f.close()#打开后必须手动关闭,否则会一直占用
with open
代码块执行完毕后会自动关闭文件,无序调用close
with open("IOTest.txt","r") as f:
f.read()
二 文件属性
f = open("IOTest.txt")
print(f.name)#名字 IOTest.txt
print(f.mode)#打开方式 r只读
print(f.closed)#是否已经关闭 False
f.close()
三 读取
1 read(n)
n读取多少个字符,不填或负值会全部读取
f = open("IOTest.txt")
print(f.read())#输出 firstLine01
f.close()
2 readline(n)
一次只读一行,下次调用读下一行,没有下一行不会报错,返回空字符串
参数n,如果不填读一整行,如果填,在当前行读固定长度,注意每行不是从0开始,而是从上行的n开始,比如n=2第一行读了2两个字符,第二行会读第3 4个字符
f = open("IOTest.txt")
print(f.readline())#输出 firstLine01
print(f.readline())#输出 firstLine02
print(f.readline())#输出 firstLine03
f.close()
循环读取
#while循环
f = open("IOTest.txt")
while True:
line = f.readline()
if not line:#空行不会影响判断
break
print(line)
f.close()
#for循环
f = open("IOTest.txt")
for line in f:
print(line)
f.close()
3 readlines()
读取所有行,返回列表
f = open("IOTest.txt")
txt = f.readlines()
print(txt)#['firstLine01\n', 'firstLine02\n', 'firstLine03']
f.close()
四 访问权限
a是
+会影响执行效率,尽量使用只读只写
append,不是all
w模式打开文件,会直接清空文件的内容,即使没做任何操作
写入
f = open("IOTest.txt","w+")
#print(f.read())
f.write("11")
f.seek(0)#写完后光标位于文本结尾,要先复位才能读取到内容
print(f.read())
f.close()
五 光标定位
tell()
显示当前光标的位置,并非索引
f = open("IOTest.txt","r")
print("文件指针当前的位置",f.tell())# 输出 文件指针当前的位置 1
f.close()
seek()
参数1 索引
参数2 以哪里为起点 0文件开始 1光标当前位置 2文件结尾 默认=0
使用参数2 必须使用 rb wb ab 模式打开 b是按字节打开
使用参数1没有限制
#文件内容:12345
f = open("IOTest.txt","rb")#按字节打开
f.seek(1,0)#移动到开头往后数第一个位置
f.seek(3)#移动到开头往后数第一个位置
f.seek(1,1)#从当前位置往后移1
print(f.read(1))#输出 b'5'
f.seek(0)#移动到开头
print(f.read(1))#输出 b'1'
f.close()
六 编码格式
Python在windows的默认文件系统编码格式为gbk,我们通常使用utf-8
with open("IOTest.txt","r",encoding="utf-8") as f:
print(f.read())
7 图片 视频 赋值
操作二进制文件要加 b
两个img在同一个作用域,withopen是 不会创建新的作用域,这一点和c#不同,img此处是全局变量
with open("图片.png","rb") as source:#打开图片
img = source.read()
with open(r"C:\Users\DH009\Desktop\复制的图片.png","wb") as target:#复制图片
target.write(img)
8 os模块
py自带的模块,可以操作文件夹
需要导入 os
import os
os.rename("IOTest.txt","IONewName.txt")#重命名
os.remove("图片.png")#删除
os.mkdir("MyNewDir")#创建文件夹
os.rmdir("MyNewDir")#删除文件夹
print(os.getcwd())# 获取当前目录 输出E:\PythonProject\PYLear
print(os.listdir())# 获取指定(默认为当前目录)目录子文件夹和文件列表 输出['.idea', '.venv', 'IONewName.txt', 'py01.py', 'SingletonPy.py', 'TestPackage', '__pycache__']
print(os.listdir("../"))# ../表示上级目录
更多推荐



所有评论(0)