TXT文件的写入及读出

一、文件的读出:

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()

猜你喜欢

转载自www.cnblogs.com/yunyuncongsheng/p/12810338.html