小学生都能学会的python(文件操作)
2018-09-18 17:40
731 查看
小学生都能学会的python(文件操作)
1. open("文件路径", mode="模式", encoding="编码")
文件的路径:
1. 绝对路径:
1. 从磁盘根目录寻找
2. 网络上的路径
2. 相对路径
相对于当前你这个程序所在的文件夹.(用的最多的)
模式
r 读. 只读模式
w 写 只能写
f = open("d:/sylar.txt", mode="w", encoding="utf-8") f.write("周笔畅\n") # 写的时候. 先清空. 再写入. w f.write("胡辣汤\n") f.write("实付款\n") f.flush() f.close()
a 追加写, 只能写入
f = open("d:/sylar.txt", mode="a", encoding="utf-8") f.write("娃哈哈") # 追加写 f.write("爽歪歪") f.flush() f.close()
b: bytes 这个时候处理文件的是字节
操作非文本文件的时候用带b的
rb
wb
ab
r+ 读写模式
f = open("菜单", mode="r+", encoding="utf-8") # r+最常见 s = f.read(1) # 读取一个字符 print(s) f.write("胡辣汤") # r+模式. 如果你执行读了操作. 那么写操作的时候. 都是写在文件的末尾. 和光标没有关系 # f.write("ab") # 在文件开头写入. 写入的是字节,把原来的内容盖上 # for line in f: # print(line) # f.write("蛋炒饭") # 正确用法: 先读后写 f.close()
w+ 写读模式
f = open("菜单", mode="w+", encoding="utf-8") # 很少用. f.write("疙瘩汤") f.seek(0) # 移动到开头 content = f.read() print("读取的内容是", content) f.flush() f.close()
a+ 追加读模式
f = open("菜单", mode="a+", encoding="utf-8") f.write("韭菜鸡蛋饺子") f.seek(0) content = f.read() print(content)
r+b
w+b
a+b
光标:
移动到开头: seek(0)
移动到末尾: seek(0, 2)
f = open("菜单", mode="a+", encoding="utf-8") # r+ a+ w+ # f.write("我要多写一点内容. 然后争取能看到效果") # f.seek(0) # print(f.read()) # f.seek(0) # f.write("你") # # f.seek(0) # print(f.read(1)) # f.seek(0) # f.write("大米饭") # f.write("大米粥") # print(f.tell()) # f.seek(3) # 字节 # print(f.read(1)) # # print(f.read(1)) # 字符 # # print(f.read(1)) # 字符 # print(f.tell()) #字节 # 使用tell()可以知道光标在哪里 # seek()可以移动光标 # 读写的时候. 单位 字符 # 光标: 单位是字节 # 光标移动到末尾: seek(0,2) # seek(偏移量, 位置) # 位置: 0开头, 1当前位置, 2末尾 # 移动到末尾: seek(0, 2)
文件的修改:
1. 从源文件中读取内容. 修改内容. 写入到文件副本中.
2. 删除源文件. 重命名文件副本为源文件的名字
with open(..) as f
f = open("我的天呐", mode="r+", encoding="utf-8") f.seek(9) f.truncate(12) # 如果没有参数. 按照光标来阶段. 如果有参数. 截断到参数位置 f.flush() f.close()
关于修改文件
import os # 引入os模块 with open("alex", mode="r", encoding="utf-8") as f1, \ open("alex_副本", mode="w", encoding="utf-8") as f2: for line in f1: new_line = line.replace("good", "sb") f2.write(new_line) os.remove("alex") os.rename("alex_副本", "alex")
企业中日志处理
result = [] with open("2018-09-12.log", mode="r", encoding="utf-8") as f: hang = f.readline() title = hang.split("|") for line in f: line = line.strip() # 去掉空白, 2018-09-11 00:00:01|刘伟|吃鸡 lst = line.split("|") dic = {title[0]: lst[0], title[1]: lst[1], title[2]: lst[2]} result.append(dic) print(result)
相关文章推荐
- python文件操作
- Python 文件读写操作实例详解
- 手把手教你学python3第八讲(OS模块有关文件系统的函数操作)
- Python--paramiko库:连接远程服务器操作文件
- python之文件的读写和文件目录以及文件夹的操作实现代码
- python中对文件、文件夹的操作
- Python实现的两个文件操作:当前目录下所有文件和转码
- python学习 文件操作
- python 文件与目录操作
- python 之文件操作
- 使用 Python 进行稳定可靠的文件操作
- Python中文件操作
- 在Python程序中操作文件之flush()方法的使用教程
- Python学习一:文件/目录操作合集
- python实现对HDFS的文件操作
- python 操作 wave 文件 的体会
- python 文件操作
- python下对文件的操作
- Python 文件操作实现代码
- python 文件操作总结