标签:abc 打开 获取文件 标记 oat test class color sort
一、文件的读出:
file = open(‘url/data.txt‘,‘r‘,encoding=‘utf-8‘)#打开模式r w a,当文件在当前工作区域直接写文件名;如果不在当前工作区域要写绝对地址
res = f.read()#读文件,获取文件里面的全部内容
res2 = f.readline()
res3 = f.readlines() #显示格式为的列表
print(res2) #一次读取第一行
print(res3) #整个文件内容,返回list一行一个元素
f.close() #关闭文件
二、文件的写入
f1 = open(‘a.txt‘,‘w‘,encoding = ‘utf-8‘) f1.write(‘写内容‘) #会把原文件内容给覆盖掉
f1.close() l = [‘1234\n‘,‘56789\n‘,‘abcdef‘] f1.writelines(l)#可以将内容存在list里面,利用writelines来写进文件 不用循环 #等同于 for j in l: f1.write(j) f1.close()
for i in f:#以f文件为循环条件对象,会以行的方式来循环读取 可以用来处理大文件
print(i)
三、文件指针
#文件指针指的是,文件阅读循环时,作标记,下一循环不从文件开始地方读取,而是从上次读取的位置往下读
import time
point = 0#初始化位置
while True:#死循环
f = open(‘C:/Users/86136/Desktop/access.log‘,encoding = ‘utf-8‘)
f.seek(point)#移动文件指针的位置
ip_list = {}#ip:2 定义在循环里面,会每60s清空一次
for line in f:
ip = line.split()[0]#split分割后 就是list 赋予下标 取值
if ip not in ip_list:
ip_list[ip] = 1
else:
ip_list[ip]+=1
point = f.tell()#当前文件指针的位置
f.close()
for ip in ip_list:
count = ip_list.get(ip)
if count >= 50:
print(ip,‘有问题‘)
f.close()
time.sleep(60)
四、文本文件转换为二维列表、二维列表排序后存入文本文件
import items as items
file = open(‘D:/aaaaayuanchengbangong/bestTEST/data.txt‘,‘r‘,encoding=‘utf-8‘)
#读文件
list = file.readlines()
data_list = []
for i in range(len(list)):#所有行作为循环条件
list1 = list[i].strip().split(‘ ‘)#添加对象,按换行符分割,存进list中
data_list.append(list1)
data_list = sorted(data_list, key=lambda data: float(data[2]),reverse=True)
print(data_list)
file.close()
#写文件
file_w = open(‘D:/aaaaayuanchengbangong/bestTEST/sort.txt‘,‘w‘,encoding=‘utf-8‘)
for j in range(len(data_list)):
for k in range(len(data_list[j])):
file_w.write(str(data_list[j][k]))
file_w.write(‘ ‘)
file_w.write(‘\n‘)
file_w.close()
五、将字典存入文本文件
info = {}
usernames = [‘xiaohei‘,‘xiaobai‘,‘xiaoming‘]
passwords = [‘123456‘,‘11111‘,‘1‘]
for i in range(len(usernames)):
u = usernames[i]
p = passwords[i]
info[u] = p
for i in range(3):
username = input(‘username:‘).strip()#去两端空格
if username==‘‘:
print(‘账号已存在‘)
elif username in info:
print(‘输入不能为空‘)
else:
password = input(‘password:‘).strip()
cpassword = input(‘cpassword:‘).strip()
if password==‘‘ or cpassword==‘‘:
print(‘密码不为空‘)
elif password != cpassword:
print(‘两次输入密码不一致‘)
else:
info[username] = password
print(‘注册成功‘)
break
else:
print(‘错误次数过多‘)
print(info)
file_w1 = open(‘D:/aaaaayuanchengbangong/bestTEST/users.txt‘,‘w‘,encoding=‘utf-8‘)
for k,v in info.items():
file_w1.write(str(k)+‘:‘+str(v)+‘\n‘)
file_w1.close()
标签:abc 打开 获取文件 标记 oat test class color sort
原文地址:https://www.cnblogs.com/yunyuncongsheng/p/12810338.html