文件操作分为:

1、打开文件,如果文件在当前目录下直接写文件名,如果文件在其他目录下写绝对路径

2、读/写文件

3、关闭文件

一、文件打开模式

# 'r':只读,文件读取后,会有文件指针记录读取文件的行数
# 'w':只写,会把以前的内容清空掉,建议写新文件时,使用w模式
# 'a':只追加
# 'r+' == r+w(可读可写,文件若不存在就报错(IOError))
# 'w+' == w+r(可读可写,文件若不存在就创建)
# 'a+' ==a+r(可追加可写,文件若不存在就创建)
# 对应的,如果是二进制文件,就都加一个b就好啦:
# 'rb'  'wb'  'ab'  'rb+'  'wb+'  'ab+'

二、读文件

 1 f = open('a.txt','r',encoding='utf-8')#打开模式r w a
2 result1 = f.readline()#读文件,一次只读一行
3 print(result1)
4 result = f.read()#读文件,获取文件里的全部内容
5 result2 = f.readlines()#读文件,把文件里的内容放到一个list里,每一行是一个元素
6 #f.read(),f.readlines()这两个方法当文件很大时,会占用很大的内存
7 print(result2)
8 #处理大文件的时候,循环读取
9 for line in f:
10 print(line)
11 f.close()#关闭文件

三、写文件

1 f1 = open('a1.txt','w',encoding='utf-8')#打卡模式r w a
2 f1.write('12')#这个是一次写一行
3 #print(f.read())
4 l = ['fdslfjs\n','fdsrewr\n','fdsfsdfrere\n']
5 f1.writelines(l)#将列表写到文件中
6 #循环写入
7 for i in l:
8 f.write(i)
9 f1.close()

四、监控日志小练习

 1 #1、监控,一直在运行,死循环,每分钟读一次文件
2 #2、第一次运行,读取文件所有的内容,从文件内容里获取到IP地址,及每个IP地址出现的次数
3 #3、判断每个IP地址出现的次数,如果大于大于50次,那么发短信告警
4 #4、等待60秒,继续重复上面的操作,读文件,获取内容
5 import time
6 point = 0#最前面
7 while True:
8 ip_list = {} #ip:ipcount
9 f = open('access.log', encoding='utf-8')
10 f.seek(point)#移动文件指针到哪个位置
11 for line in f:
12 ipStr = line.split()[0]
13 if ipStr not in ip_list:
14 ip_list[ipStr] = 1#不存在则加入统计
15 else:
16 ip_list[ipStr] += 1#存在则修改统计次数
17 point = f.tell()#当前文件指针的位置
18 f.close()
19 for ip in ip_list:
20 ipCount = ip_list.get(ip)#获取IP的统计次数
21 if(ipCount >= 50):
22 print('请求次数超过5次的IP:%s,请求次数为:%s'%(ip,ipCount))
23
24 time.sleep(60)

五、排序小练习

 1 #根据每个人跑步的公里数 重新排序每个人的排名,格式 1. 毛多锁 500km
2 #1、打开文件
3 #2、将文件的内容循环读取,存放到字典中
4 #3、给字典排序
5 #4、将排序好的字典写到一个新的文件中
6
7 run_scores = {}
8 f = open('数据.txt',encoding='utf-8')
9 for userinfo in f:
10 temp1 = userinfo.split()#用空格分割,将名字和跑步公里数分割
11 run_scores[temp1[1]] = float(temp1[2])#将文件中的内容放入字典中
12
13 f.close()#关闭文件
14 print(run_scores)
15 #将字典进行降序排序
16 run_scores_sort = dict(sorted(run_scores.items(), key=lambda x: x[1],reverse=True))
17 print(run_scores_sort)
18 new_file = open('排序.txt','w',encoding='utf-8')#打开一个新的文件,用来存放排序后的内容
19 count = 0#定义编号
20 for temp2 in run_scores_sort:#遍历排序后的字典
21 count += 1
22 runScore = run_scores_sort[temp2]#获取跑步总公里数
23 result = '%d. %s %.2fkm\n' % (count,temp2,runScore)
24 print(result)
25 new_file.write(result)#将排序后的结果写入新的文件
26
27 new_file.close()

执行结果如图所示:

六、注册小练习

 1 #注册用户,注册的逻辑和以前一样,注册成功的用户写到users.txt里面,写的数据格式和文件里面的一样
2 #1、输入注册的账号
3 #2、注册的账号不能为空
4 #3、注册的账号不能存在于users.txt文件中
5 #4、注册的密码,确认密码不能为空
6 #5、密码与确认密码一致,才能注册成功
7 #6、将注册的账号,密码追加到users.txt文件中
8 f = open(r'users.txt', 'r', encoding='utf-8') # 将打开文件模式定义为r:只读
9 results = f.readlines()#将文件内容读取到list中
10 f.close() # 关闭文件
11 for i in range(3):
12 checkUser = False#定义一个检查用户是否存在的flag
13 username = input('请输入注册的账号:').strip()#获取输入的账号
14 if username:#注册账号不为空,则继续验证
15 for line in results:#循环读取文件,检查注册账号是否存在
16 userinfo = line.split(',')#分割
17 if username == userinfo[0]:
18 checkUser = True
19 print('输入的账号已存在!!!')
20
21 if not checkUser:#当用户不存在时,进行注册
22 password = input('请输入注册的密码:').strip() # 获取输入的密码
23 rePassword = input('请输入确认密码:').strip() # 获取输入的确认密码
24 if password and rePassword:
25 if password == rePassword:
26 print('恭喜你,注册成功!')
27 new_file = open(r'users.txt', 'a', encoding='utf-8') # 将打开文件模式定义为a:可追加
28 tempResult = '%s,%s\n' % (username, password)
29 print(tempResult)
30 new_file.write(tempResult)
31 new_file.close() # 关闭文件
32 break
33 else:
34 print('两次输入的密码不一致!')
35 else:
36 print('密码/确认密码不能为空')
37 else:
38 print('输入的账号不能为空')
39
40 else:
41 print('错误次数已达上限!')

python使用笔记003-文件操作(一)的更多相关文章

  1. python学习笔记4(文件操作)

    文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”)      直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...

  2. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  3. Python学习笔记 - day5 - 文件操作

    Python文件操作 读写文件是最常见的IO操作,在磁盘上读写文件的功能都是由操作系统提供的,操作系统不允许普通的程序直接操作磁盘(大部分程序都需要间接的通过操作系统来完成对硬件的操作),所以,读写文 ...

  4. python学习笔记:文件操作和集合

    一.文件操作 文件读写步骤:有一个文件,打开文件,操作文件读写文件,关闭文件. python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例) 模式 可做操作 若文件不存在 是否覆盖 r ...

  5. python学习笔记(六)---文件操作与异常处理机制

    文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...

  6. python学习笔记之文件操作(三)

    这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...

  7. python学习笔记(三):文件操作和集合

    对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...

  8. 我的Python学习笔记之文件操作

    一,Python的文件类型有两种 1.文本文件 2.二进制文件 文件的操作: 1.打开文件,获取文件的控制权 2.读写文件 3.关闭文件,释放文件的控制权,如果不释放控制权,那么其他程序就不能访问此文 ...

  9. python学习笔记(四)-文件操作

    文件读写"""一.文件打开有3种方式 1.读 r #如果打开的文件的时候没有指定模式,那么默认是读 读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错 2.写 w ...

  10. python学习笔记(五)-文件操作2

    一.文件修改 现有文件file.txt,内容如下:二十四节气歌春雨惊春清谷天,夏满芒夏暑相连.秋处露秋寒霜降,冬雪雪冬小大寒.上半年逢六廿一,下半年逢八廿三.每月两节日期定,最多相差一二天.要求:将文 ...

随机推荐

  1. .Net Redis实战——使用Redis构建Web应用

    示例介绍 示例1:借助Redis实现购物车功能 示例2:Redis实现网页缓存和数据缓存 借助Redis实现购物车功能 每个用户的购物车都是一个散列,散列存储了商品ID与商品订购数量之间的映射.订购商 ...

  2. Linux 文件不能被root修改与编辑原因

    近段时间公司的一台服务器被恶意添加了一些定时器任务到crond的配置文件"/var/spool/cron/root"里,本想着只要简单使用crontab -e命令把该恶意的任务去除 ...

  3. AI推理与Compiler

    AI推理与Compiler AI芯片编译器能加深对AI的理解, AI芯片编译器不光涉及编译器知识,还涉及AI芯片架构和并行计算如OpenCL/Cuda等.如果从深度学习平台获得IR输入,还需要了解深度 ...

  4. 端到端TVM编译器(下)

    端到端TVM编译器(下) 4.3 Tensorization DL工作负载具有很高的运算强度,通常可以分解为张量运算符,如矩阵乘法或一维卷积.这些自然分解导致了最近的添加张量计算原语.这些新的原语带来 ...

  5. ADAS虚拟车道边界生成

    ADAS虚拟车道边界生成 Virtual Lane Boundary Generation for Human-Compatible Autonomous Driving: A Tight Coupl ...

  6. Appium_adb常用命令总结

    以下为在工作学习过程中总结的常用的adb命令,用来做后续参考和查阅: 一.常用命令 显示当前运行的全部模拟器: adb devices  安装应用程序: adb install 应用程序.apk 备注 ...

  7. 如何下载安装Python

     github博客传送门 csdn博客传送门 如何下载安装python 第一步: 在python的官网下载python版本,需要下载对应版本(在计算机-属性中查看自己是32位操作系统还是64位操作系统 ...

  8. springcloud webflux

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  9. 【题解】将军令 Luogu P3942 (未完成)

    历史/落在/赢家/之手 至少/我们/拥有/传说 谁说/败者/无法/不朽 拳头/只能/让人/低头 念头/却能/让人/抬头 抬头/去看/去爱/去追 你心中的梦 将军令 题目描述 又想起了四月. 如果不是省 ...

  10. 为什么 Python 没有函数重载?如何用装饰器实现函数重载?

    英文:https://arpitbhayani.me/blogs/function-overloading 作者:arprit 译者:豌豆花下猫("Python猫"公众号作者) 声 ...