网站改版设计思路,中国做民宿的网站,wordpress 资讯类 模版,php网站后台页面1、打开文件的模式 1 r#xff0c;只读模式#xff08;默认#xff09;【不可写#xff1b;文件不存在#xff0c;会报错】
2 w#xff0c;只写模式【不可读#xff1b;不存在则创建#xff1b;存在则删除内容】
3 a#xff0c;追加模式【不可读#xff1b;不存在则创…1、打开文件的模式 1 r只读模式默认【不可写文件不存在会报错】
2 w只写模式【不可读不存在则创建存在则删除内容】
3 a追加模式【不可读不存在则创建存在则追加内容】
4 r读写模式【可读、可写、可追加如果打开的文件不存在的话会报错】
5 w写读模式【使用w的话已经存在的文件内容会被清空可以读到已经写的文件内容】
6 a追加读写模式【不存在则创建存在则只追加内容】 2、文件基本操作 1 # 打开文件(python默认字符集为utf-8windows为gbk所以要指定encodingutf-8)不输入模式默认为r模式
2 m open(words,encodingutf-8)
3 print(m.read()) # 读文件
4 print(m.readline()) # 读取第一行
5 print(m.readlines()) # 把文件的每一行放到一个list里面 3、文件操作方法 1 f open(words,r,encodingutf-8) # encoding参数可以指定文件的编码2 f.readline() # 读一行3 f.readable() # 判断文件是否可读4 f.writable() # 判断文件是否可写5 f.encoding # 打印文件的编码6 f.read() # 读取所有内容大文件时不要用因为会把文件内容都读到内存中内存不够的话会把内存撑爆7 f.readlines() # 读取所有文件内容返回一个list元素是每行的数据大文件时不要用原因和上面一样8 f.tell() # 获取当前文件的指针指向9 f.seek(0) # 把当前文件指针指向哪
10 f.write(爱情证书) # 写入内容
11 f.flush() # 写入文件后立即从内存中把数据写到磁盘中
12 f.truncate() # 清空文件内容
13 f.writelines([爱情证书,孙燕姿]) # 将一个列表写入文件中
14 f.close() # 关闭文件 4、大文件读取高效操作方法 用上面的read()和readlines()方法操作文件的话会先把文件所有内容读到内存中这样的话内存数据一多非常卡高效的操作就是读一行操作一行读过的内容就从内存中释放了如下 1 # 这样的话line就是每行文件的内容读完一行的话就会释放一行的内存
2 f open(words,encodingutf-8)
3 for line in f:
4 print(line) 5、文件指针 1 # 用来记录文件读到哪里
2 # a模式的文件指针是在末尾的
3 m open(name,a,encodingutf-8)
4 m.write(呃呃呃)
5 m.seek(0) # 移动文件指针到最前面
6 print(m.read())
7 m.write(呵呵呵) # 移动完文件指针之后从前面开始读但写的时候还是在文件末尾写
8 m.seek(0)
9 print(m.read()) 6、自动关闭文件 在操作文件的时候经常会忘了关闭文件。可以使用with它会在使用完这个文件句柄之后自动关闭该文件使用方式如下 1 # 打开一个文件把这个文件的句柄付给f
2 with open(file.txt, r) as f:
3 for line in f:
4 print(line)
5
6 # 这是多文件的操作打开两个文件fr是读file.txtfw是新建一个file_bak文件
7 with open(file.txt) as fr,open(file_bak, w) as fw:
8 for line in fr: # 循环file.txt中的每一行
9 fw.write(line) # 写到file_bak文件中 7、修改文件 修改文件有两种方式 一种是把文件的全部内容都读到内存中然后把原有的文件内容清空重新写新的内容第二种是把修改后的文件内容写到一个新的文件中第一种方式 1 with open(words,r,encodingutf-8) as fr:
2 res fr.read() # 读出文件中的全部内容
3 new_res res.replace(花,flower) # 将花替换成flower
4 fr.seek(0) # 将文件指针指向文件最开头
5 fr.truncate() # 清空文件
6 fr.write(new_res) # 将替换后的内容写入文件 第二种方式 1 # 这个是多文件的操作打开两个文件fr是读file.txtfw是新建一个file_bak文件
2 import os
3 with open(file) as fr,open(new_file,w) as fw:
4 for line in fr: # 循环file.txt中的每一行
5 new_line line.replace(花,flower)
6 fw.write(new_line) # 写到file_bak文件中
7 os.remove(file) # 删除文件
8 os.rename(new_file,file) # 改名 8、f.write()和f.writelines() 1 # f.write()只能写字符串2 a [abc\n,123\n,!#]3 f open(name,w)4 for i in a:5 f.write(i)6 7 # f.writelines()会循环把list当中的元素写入文件8 a [abc\n,123\n,!#]9 f open(name,w)
10 f.writelines(a) 9、练习 1随机产生手机号输入多少个就产生多少个 import random
start_num 1387691
f open(test.txt,w,encodingutf-8)
num input(请输入要产生的手机号个数)
for i in range(int(num)):random_num str(random.randint(1,9999)) # 随机产生一个1-9999的数字new_num random_num.zfill(4) # 不够四位前面补0phone_num start_num new_numf.write(phone_num \n)
f.close() 2监控日志一分钟读一次日志文件如果一分钟之内访问博客的IP地址超过50次就把这个IP记录下加入黑名单 1 # 分析2 #打开日志文件3 #把ip地址拿出来4 #判断每一个ip出现的次数如果大于50次记录下来加入黑名单5 #每分钟读一次6 import time7 point 08 while True:9 all_ips [] #存放所有的IP地址
10 f open(access.log,encodingutf-8)
11 f.seek(point) #移动文件指针
12 for line in f: #直接循环一个文件对象每次循环的是文件的一行
13 ip line.split()[0] #拿到IP地址
14 all_ips.append(ip) #把它存入数组当中
15 point f.tell() #记录指针位置
16 all_ip_set set(all_ips)
17 for ip in all_ip_set: #循环集合当中的IP没有重复的
18 if all_ips.count(ip) 50: #判断的是数组当中的IP
19 print(攻击的ip是%s%ip)
20 f.close()
21 time.sleep(2) 转载于:https://www.cnblogs.com/L-Test/p/8983190.html