f = open("文件名或路径", mode="模式", encoding="UTF-8")
s = f.read()
f.close
with open("文件名", mode="模式", encoding="utf-8") as f:#比较友好,能够不关闭文件,它自动刷新和关闭文件
绝对路径:从磁盘的根目录寻找 或者 从互联网上寻找一个路径python
相对路径:(用的多). 相对于当前程序所在的文件夹 ../上一层文件夹app
f = open("哈哈哈哈哈", mode="r", encoding="UTF-8") s = f.read() print(s) f.close() # 若是没有这句话, 你在下面的程序中若是删除这个文件. 就会报错
for line in f: # 文件是一个可迭代对象 print(line.strip()) # 一行一行的处理数据 lst = f.readlines() print(lst) f.close()
#带w的. 只要你操做了. 就会清空源文件 #若是文件不存在. 会自动建立文件 f = open("阿西吧", mode="w", encoding="utf-8") f.write("呀! 养狗了没有?\n") f.write("养狗四米大") f.flush() f.close()
# 写的时候. 换行须要手动控制换行 \n f = open("阿西吧", mode="a", encoding="utf-8") f.write("四米大?") f.write("四米大") f.flush() f.close()
#r+ 先读后写 f = open("阿西吧", mode="r+", encoding="utf-8") s = f.read(3) # 读取三个字符 print(s) f.write("不养了. 送人") # 在末尾写 f.write("葫芦娃") s = f.read() print(s) s = f.read(2) print(s) f.write("还有何云伟") f.close()
# w+,先写后读,不多用. 由于会清空文件中的内容 f = open("阿西吧", mode="w+", encoding="utf-8") f.write("张云雷也要退出德云社") # 写完以后光标在最后. 读取是没有内容的 f.seek(0) # 移动光标, 移动到开头 s = f.read() print("读取的内容是",s) f.flush() f.close()
f = open("阿西吧", mode="a+", encoding="utf-8") f.write("我要加入德云社")#清空源文件内容,写入"我要加入德云社" f.seek(0) #移动光标到开头,缘由:写入完毕,光标停留在写完最后的位置 s = f.read() #不移动光标什么都读不出来 print(s) #我要加入德云社 f.flush() f.close()
rb, wb, ab, bytes#若是处理的是非文本文件, mode里若是有b. encoding就不能给了 f = open("c:/pdd.jpg", mode="rb") # 这里不能写encoding e = open("e:/pdd.jpg", mode="wb") for line in f: # 从c盘读取 line你是不知道读取了多少数据的 e.write(line) # 写入到e盘 f.close() e.flush() e.close()
seek(偏移量, 位置)函数
光标(seek)*spa
seek(0) 光标移动到开头日志
seek(0,2) 光标移动到结尾code
seek(0,1)当前光标对象
tell() 告诉光标的位置blog
1.从文件开头截断到光标位置ip
2.若是给参数. 从头截断到参数位置utf-8
1. 引入os模块
2. 打开目标文件, r
3. 打开文件副本, w
4. 从r中读取内容进行修改. 写入到副本中
5. 删除源文件
6. 重命名副本
#将原文件中的'alex'换成'很屌' import os #引入模块 # with open('a1.txt',mode='r',encoding='utf-8') as f, \ # open('a1副本.txt',mode='w',encoding='utf-8') as f1: # for line in f: # line = line.replace("alex", "很屌") # f1.write(line) # os.remove("a1.txt") #删除原文本 # os.rename("a1副本.txt","a1.txt") #将新文本重命名为原文件名
#示例,日志的终极处理方法 import os # 引入模块 lst = [] with open("2018-08-06.log", mode="r", encoding="utf-8") as f: #这种写法比较友好,不用打close() first = f.readline().strip().split(",") #去除空白,分割','造成列表 for line in f: #循环文件,循环的结果是每一行 #dic = {} # 每一行一个字典 # 1,alex,10086,特斯拉 ls = line.strip().split(",") #每一行都去除空格,以','分割,造成列表 for i in range(len(first)): #无论源文件如何增长内容,这里每次均可以循环到,能够添加到字典中 dic[first[i]] = ls[i] #比原来更方便 lst.append(dic) print(lst)