文件操作
foreword
流程:1 创建文件对象 2 调用文件方法进行操作 3 关闭文件
1.“读”模式
1 f = open("C:UsersShincePycharmProjectsDeanerysweek2day5 est","r")
在文件的操作中都存在光标的移动,之后的操作都会收到影响。 括号内加encoding = “utf8” 正确显示
1 data = f.read(5) # 读操作 5个字符 2 f.readline() # 读第一行的内容 不加.strip打印出来会换行 3 f.readline() # 读第二行的内容 光标已经移动到第一行最后 4 f.readlines() # 读取所有 并制成list 会打印出 5 for i in f: 6 print(i.strip()) # *会按照格式打印所有 将F变成一个迭代器(按照行打印) 常用打开 模式 7 f.close() # 打开后记住关闭掉 8 print(f.tell()) # 告诉你光标在哪个位置 utf8一个中文占3个位置(编码不同不一致) 英语占一个 9 f.seek(0) # * 调整光标的位置
2.“写”模式
1 f = open("C:UsersShincePycharmProjectsDeanerysweek2day5 est","w") # 写模式 在打开写模式的同时 会格式化文件 若是没有这个文件则创建这个文件 2 f.write("sqwe") # 写入 空格 换行符都是“字符” 3 f.write("sad") # 再次写入跟在第一个后面无空格 4 f.flush() # 将写好的存入磁盘 5 f.close()
3.“添加”模式
1 f = open("test","a") # 添加模式 类似append,添加到最后。 2 f.write(" 你好") # 表示会另起一行 3 f.truncate(5) # 删除5个字节之后的内容(不受光标的影响), 不在r模式下使用(会报错) 默认为-1,即开头后面都删除。 4 f.close()
truncate的计算办法是字节不是字符。utf8中3个字节表示一个字符,英语字母是一个。
4.“读+”模式
读+模式是在读的基础上添加写的功能,是一种经常能使用的到的模式。需要注意的是,读的光标和写的光标不在同一个位置,各自位于一前一后不受影响。
5.“写+”模式
1 f = open("C:UsersShincePycharmProjectsDeanerysweek2day5 est","w+") # 首先是以写的模式打开所以内容为空 2 f.write("嘎嘎") # 光标到6 3 f.read() # 读到的为空 因为读是指光标后的内容
6.“添加+”模式
1 f = open("test","a+",encoding="utf8") # 光标只有一个可读可写在最后 2 print(f.read(4)) # 读到的内容为空 3 f.write("here") # 内容写到了最后
7.其他
1 with open("test","r",encoding="utf8") as f,open("testc","r",encoding="utf8") as l: 2 print(f.read()) 3 print(l.read())
同时打开两个文件并命名,这样做的好处是省去了.close这个操作。但是应注意缩进。