1.打开和关闭文件
open('C:\Users\Second One\Desktop\a.txt')文件路径必须完整路径且为字符串格式
有三种方式:
open('C:\\Users\\Second One\\Desktop\\a.txt')
open('C:/Users/Second One/Desktop/a.txt')
open(r'C:\Users\Second One\Desktop\a.txt')
close(打开后必须要关闭)
2.文件打开模式rt,wt,at
用读模式打开只能读,用写模式打开只能写,不能既读又写
读:
f = open(r'C:\Users\Second One\Desktop\a.txt','r',encoding='utf-8')(以什么编码方式携程的文件就需要以什么编码方式打开)
data = f.read()可以在括号中指定字符个数
f.close()
f.readline()默认读取一行
f.readlines()将内容以列表形式展现出来
写(覆盖):
f = open(r'C:\Users\Second One\Desktop\a.txt','w',encoding='utf-8')
f.write()
f.writable()是否可写
f.writelines()括号内为可迭代对象
f.close()
写(追加):
f = open(r'C:\Users\Second One\Desktop\a.txt','a',encoding='utf-8')
f.write(\n)可以另起一行
f.close
3.pycharm内置自动关闭文件函数
with open(r'C:\Users\Second One\Desktop\a.txt','r',encoding='utf-8') as f:
文件内内容替换
with open(r'C:\Users\Second One\Desktop\a.txt','r',encoding='utf-8') as f1:
data = f1.read()
new = data.replace('abc','sb250')
with open(r'C:\Users\Second One\Desktop\a.txt','w',encoding='utf-8') as f2:
f2.write(new)
4.文件打开模式rb,wb,ab(二进制方式)
with open(r'C:\Users\Second One\Desktop\a.txt','rb') as f:
data = f.read()可以按照字节读取内容
f.write('你好'.encode('utf-8'))汉字必须要进行编码
f.write(b'abc')英文字母及符号需要在字符串前加“b”或者进行转码
5.文件内光标移动
with open(r'C:\Users\Second One\Desktop\a.txt','r',encoding='utf-8') as f:
data=f.read(2)文件读取命令执行一次后光标会移动到读取出的内容的后面,下一次命令执行会在光标车次的位置开始读
光标移动 f.seek()
f.seek(0,0)后面的0表示把光标移动到开头,前面的数字代表光标移动步数
f.seek(0,1)后面的1表示光标相对位置,前面的数字代表光标移动步数
f.seek(0,2)后面的2表示把光标移动到末尾,前面的数字代表光标移动步数
rt模式打开的文件前面的数字只能是0
f.seek(2,0)表示把光标从头开始向右移动2个字节
f.seek(1,1)表示把光标从当前位置想右移动1个字节
f.seek(-3,2)表示把光标从结尾向左移动3个字节
6.利用光标进行动态监控文件
import time
with open(r'C:\Users\Second One\Desktop\a.txt','rb') as f:
f.seek(0,2)
while True:
data = f.read()
if '404' in data:(此写法是错误的,字符串是无法与字节形式打开的文件进行比较的)
if b'404' in data:
print(data)
else:
time.sleep(0.5)