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()
TXT文件的写入及读出的更多相关文章
- JAVA读取TXT文件、新建TXT文件、写入TXT文件
1.创建TXT文件 按照正常的逻辑写就好 先定义一个文件给定一个路径——>判断这个路径上这个文件存不存在——>若不存在则建立,try/catch根据程序提示自动生成就好 2.读取TXT文件 ...
- 第十七章,txt文件的写入和读取数据结合练习(C++)
#include <iostream> #include <fstream> int main(int argc, char** argv) { std::string str ...
- python txt文件的写入和读取
1.文件的打开 使用open () 函数 打开文件.他有两个参数,文件路径或文件名和文件的打开方式. "r" 只读模式,不能编辑和删除文件内容. "w" 写入模 ...
- Java读取txt文件和写入txt文件
package com.nickwong.code; import java.io.*; /** * Created by Nickwong on 31/07/2018. * 根据1-8楼的建议,优化 ...
- 向txt文件中写入内容(覆盖重写与在末尾续写+FileOutputStream与FileWriter)(转发:https://blog.csdn.net/bestcxx/article/details/51381460)
!!!! 读取txt文件中的内容 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; /** ...
- JAVA 创建TXT文件,写入文件内容,读取文件内容
[java] view plain copy package com.abin.facade.ws.mail.function; import java.io.BufferedReader; i ...
- Java创建TXT文件并写入 内容
public static void main(String[] args) { String filePath = "E:/" + "1.txt"; Stri ...
- Python txt文件读取写入字典的方法(json、eval)
link:https://blog.csdn.net/li532331251/article/details/78203438 一.使用json转换方法 1.字典写入txt import json d ...
- C#读txt文件并写入二维数组中(txt数据行,列未知)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
随机推荐
- 【JAVA习题三】求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加
import java.util.Scanner; public class a加aa加aaa { public static void main(String[] args) { // TODO A ...
- 读-写锁 ReadWriteLock & 线程八锁
读-写锁 ReadWriteLock: ①ReadWriteLock 维护了一对相关的锁,一个用于只读操作, 另一个用于写入操作. 只要没有 writer,读取锁可以由 多个 reader 线程同时保 ...
- STM32读取Guidance数据——Guidance SDK
更新记录:2019/11/14 更新STM32(F407VET6)读取Guidance数据 Github地址. 背景:想要将祖传的Guidance用于DJI A3/新固件的N3飞控.DJI已经停 ...
- 使用ansible控制Hadoop服务的启动和停止
一.环境: 服务器一台,已安装centos7.5系统,做ansible服务器: 客户机三台:hadoop-master(192.168.1.18).hadoop-slave1(192.168.1.19 ...
- apt-key 密钥管理,apt-secure 原理 验证链 验证测试
apt-key 用于管理Debian Linux系统中的软件包密钥.每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥. apt-key list 列出已保存在系统中key.包括 /e ...
- Python编程思想(3):数字及其相关运算
Python 提供了三种数值类型:int(整型),float(浮点型)和complex(复数). int:通常被称为整型或者整数,如200.299.10都属于整型: float:浮点数包含整数和小数部 ...
- 【Hadoop】hdfs的秘密,namenode,datanode,yarn,安全模式,fsimage,edits...
1.bin/hdfs namenode -format ** 注意事项 1.在配置好了配置文件之后,首次启动之前,做初始化操作 2.在后续启动的时候,不需要再初始化 3.初始化的一些影响 一.初始化操 ...
- Java实现 LeetCode 729 我的日程安排表 I(二叉树)
729. 我的日程安排表 I 实现一个 MyCalendar 类来存放你的日程安排.如果要添加的时间内没有其他安排,则可以存储这个新的日程安排. MyCalendar 有一个 book(int sta ...
- Java实现 LeetCode 561 数组拆分 I(通过排序算法改写PS:难搞)
561. 数组拆分 I 给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), -, (an, bn) ,使得从1 到 n 的 min(ai, bi ...
- Java实现 LeetCode 51 N皇后
51. N皇后 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后问题的解决 ...