文件操作
文件操作
主要内容:
一, 基本的操作
打开文件的几种方式:
1, r 只读模式(r, rb)
2, w 只写模式(w, wb)
3. a 追加模式(a, ab)
4, r+ 读写(追加写读)(a, ab)
5, w+ 写读
6, a+ 写读(追加写读)
二, 文件操作
1. 格式(r 只读模式): 当在读的情况下是不能写的
f = open("你好", mode = "r" encoding = "utf-8" ) s = f.read() f.close() # 关闭句柄 print(s)
注意:文件名的添加还有不要忘记f.colse关闭句柄
路径有两种: 1,相对路径(相当于当前程序的文件夹)
2,绝对路径(相当于根目录寻找想要的文件夹)
../../ 这个符号表示返回上上层的文件夹
一般使用相对路径
2. 格式(w 只写模式): 当在写的模式下是不能读的
f = open("nihao", mode = "w" , encoding = "utf-8") #写入之前会清掉原来的内容 f.write("dushinuian") f.flush f.close print(f)
3. 格式(a 追加)
f =open("xiaohushi', mode = 'a', encoding = 'uft-8') #在原来的基础上进行追加内容 f,write("xiao ") f,flush f,clo se
4. 格式(rb 读的是字节)
f = open('x' , mode = 'rb' ) # 读取的内容直接就是字节 bs = f.rede() print(bs.decode('utf-8')) # 需要解码 f.close
5. 格式(wb 写的是字节)
f = open('x' , mode = 'wb' ) # 写的内容直接就是字节 f.write("你好啊".encoding("utf-8")) #需要编码 f.close
6. 格式(r+ 读写) 带b的处理的是非文本
f = open('x' , mode = 'r+', encoding = "utf-8" ) #r+默认情况下光标在文件的开头 bs = f.rede() f.write("小周") f.flush #先写后读会对文件造成不同的伤害,比如删除开头的内容 f.close print(bs)
7.格式(w+ 写读)
f = open('x' , mode = 'w+', encoding = "utf-8" ) #w 操作.会清空原来的内容 f.write("你好") f.seek(0) #移动光标 s = f.read() f.flush() f.close()
二, 光标的移动
1 f.seek()表示
seek(n)光标移动到n位置,注意,移动的单位是byte,所以如果utf-8de 中文部分要是3的倍数
通常我们使用seek都是移动到开头或者结尾.
移动到开头:seek(0)
移动到末尾:seek(0,2)seek的第二个参数表示的是从哪个位置进行位置偏移,默认是0,便是开头,1表示当前位置,2表示结尾
f = ('xiao', mode = 'r+' encoding = 'utf-8') f.seek(0) #是把光标移开头 s = s.read() #读取人内容.此时光标移动到末尾 print(s) f.seek(0) #是把光标移动到开头 d.seek(0,2) #是把光标移动到末尾 s1 = f,read() #读取内容什么都没有 print(s1) f.seek(0) #把光标移动到开头 f.write('你好'') #写入信息.此时光标在9 中文3*3 = 9 f.flush() f.close()
truncate() 截断文件
是删除光标后面的所有的内容
修改文件以及另一种打开文件的方式
文件修改:只能将文件中的内容读取到内存中,将信息修改完毕,然后将源文件删除.将新文件的名字改成老文件的名字.
inport os with open("小娃娃",mode = "r", encoding = "utf-8")as f1,\ open("小娃娃_new",mode = "r", encoding = "utf-8")as f2: content = f1.read() new_content = content.replace('你好'',"大白梨") f2.write(new_content) os.remove("小娃娃") #删除源文件 os.rename("⼩小娃娃_new", "⼩小娃娃") #重命名新文件
五个英文单词:
1. open 打开
2.mode 模式
3.encoding 编码,译码
4. read 读取
5. write 写
表格的相关处理
1 lst = [] 2 3 with open("2018-08-06.log", mode="r", encoding="utf-8") as f: 4 first = f.readline().strip().split(",") 5 for line in f: 6 dic = {} # 每一行一个字典 7 # 1,alex,10086,特斯拉 8 ls = line.strip().split(",") 9 for i in range(len(first)): 10 dic[first[i]] = ls[i] 11 12 lst.append(dic) 13 14 print(lst)

浙公网安备 33010602011771号