Python基础-文件操作【六】

2017年6月11日14:43:11 发表评论 586 views
广告也精彩

Python基础-文件操作【六】

一、文件处理

打开文件,得到文件句柄并赋值给一个变量
通过句柄对文件进行操作
关闭文件
  • r模式,默认模式,文件不存在则报错
  • w模式,文件不存在则创建,文件存在则覆盖
  • a模式,文件不存在则创建,文件存在则不会覆盖,写内容会以追加的方式写(写日志文件的时候常用),追加模式是一种特殊的写模式
  • b(rb,wb,ab)模式:不用加encoding:utf-8
##打开文件,得到文件句柄并赋值给一个变量(操作系统调用)
f=open('c.txt',mode='r',encoding='utf-8') #告诉系统我们使用字符集
# 读/写
data=f.read()
print(data)
#关闭
f.close()  #回收操作系统的资源
# f.read()   #再次读取就显示文件被关闭了,也证明了上面close回收系统资源

#结果:
1您好11 #如果没有第二行的enconding,就会乱码,因为python3默认utf-8 但widonws GBK
222
333

实操案例

f=open('c.txt','rb')
# print(f.read())
print(f.read().decode())

f=open('d.txt','wb')  #打开d文件
f.write('啦啦啦'.encode('utf-8')) ##写入啦啦啦,指定字符集
f.close()  #回收系统资源

二、基本操作

1.文件打开模式

  文件句柄=open('文件路径',‘模式’)

打开文件时,需要指定文件路径和以什么方式打开文件。

打开文件的模式有:
r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
w,只写模式【不可读;不存在则创建;存在则清空内容】
x, 只写模式【不可读;不存在则创建,存在则报错】
a, 追加模式【可读; 不存在则创建;存在则只追加内容】

三、文件的修改

当文件很大时,刚刚的方法在一次性读取文件内容和写入新内容时,耗时长,占用磁盘空间也较大。

备份文件的方法可以建立一个备份文件,修改一行写一行,具体步骤如下:

(1)打开2个文件,原文件b和备份文件.bak 。如b.txt words.bak

(2)删除b文件,将b文件名改为words.bak文件名

例:将文件b.txt里的“花”改成“flower”

f=open('b.txt','r+',encoding='utf-8')

 f.write('花_lii,2323\n花_mmm,2332\n花_shens,2883\n')
#
 f.close()

###修改文件

import os
with open('b.txt',encoding='utf-8') as  fr,open('.words.bak','w',encoding='utf-8')as fw:
  for line in fr:
    new_line = line.replace('花','flower')
    fw.write(new_line)
os.remove('b.txt')  #删除文件
os.rename('.words.bak','b.txt')  #改名

Python基础-文件操作【六】

四、小练习

1、获取手机号,前面181117+ 后四位随机,写到文件里。

分析:(1)首先要随机产生一些四位数,位数不足的要补0,zfill可以给字符串补0;

(2)需要写到文件里,可以用w或者a模式。文件有打开就要有关闭。

# import random
# f = open('dg.txt','w')
# num = int(input('您需要几个手机号: '))
# for i in range(num):  
#     start = '1581117'
#     random_num = str(random.randint(1,9999)) #确定随机数的范围
#     new_num = random_num.zfill(4) #位数不足4位,用0来补
#     p_num = start + new_num #手机号拼接
#     f.write(p_num+'\n') #写入文件
# f.close() #关闭文件
##下面是查看结果
# a = open('dg.txt','r',encoding='utf-8')
# print('您获得的手机号:',a.readlines())
# a.close()

Python基础-文件操作【六】

2,查找出http访问量最高的几个IP地址(配合防火墙+lua 有效屏蔽恶意攻击)
监控服务器日志,如果ip出现的次数大于50次,就把该ip加入黑名单。日志文件的格式如下图

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
广告也精彩
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: