博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件修改等
阅读量:4320 次
发布时间:2019-06-06

本文共 4461 字,大约阅读时间需要 14 分钟。

1、write 和writelines使用区别

writelines是将可迭代对象(list,元组,字符串等)循环读取,。。。('a','b','c','d')

当写入一个字符串的时候,用write效率更高,

如 

with open('0110.txt', 'a+', encoding='utf-8') as a:     names='liyajing,123456'  字符串 f.write(names), 写入字符串,整个写入,效率高 f.writelines(names),写入一个字符串,循环读取liyajing,123456,效率不高
2、f.flush立即把缓冲区的内容写到磁盘里面 3、自动关闭文件,用with  with open('a.txt','a+',encoding='utf-8') as a:       打开多个文件,写入多个文件: with open ('a.txt','a+',encoding='utf-8') as a,open ('a.txt','a+',encoding='utf-8') as b:
4、打开图片,音频,视频 是二进制的方式,指定模式,为rb,wb,ab,其中b是bytes:    with open ('a.txt','ab') as a:
应用场景:写代码下载图片
5、替换字符串内容,修改文件内容 两种方式: 1)整体修改,适合内容少的文本: with open('cz.txt','a+',encoding='utf-8') as a: a.seek(0) 只要存在a+就需要将文件指针移到最前面 all=a.read()读取到所有的 new=all.replace('一','er') 在读取到的文件中 替换文字内容,此时文件指针在最后面,读取到的new是字符串 a.seek(0) 移动文件指针到最前面 a.truncate() 清空文件内容 a.write(new) 将替换后最新的信息写入到cz.txt文件中 a.flush 立即把缓冲区的内容写到磁盘 2)读取每行进行修改,适合文件内容较大的文本 import os 定义模块 with open('cz.txt','a+',encoding='utf-8') as a,open('cz1.txt','a+',encoding='utf-8') as b:打开一个文件,创建一个新文件 a.seek(0) 将cz.txt的文件指针移至最前面 for i in a: 循环读取每行 new=i.replace('yi','er') 在cz.txt中将每行循环读取出的数据,替换,字符串不能编辑,所以新生成一个字符串 b.write(new) 将修改成功的字符串写入新建的文件cz1.txt,此时如果不存在os模块,则存在两个文件 os.remove('cz.txt')  删除原文件 os.rename('cz1.txt','cz.txt') 修改新文件名 6、编写监控日志
需求,从日志文件中60s内,ip地址访问超过200次,加入黑名单 去掉重复 import time point=0 while True:     ips=[]  放在60s循环内记录     s=set()     with open('access.log',encoding='utf-8') as a:         a.seek(point)         for i in a:             ip=i.split()[0]             ips.append(ip)             if ips.count(ip)>199:                 s.add(ip)         for i in s:            print('%s存在重复'%i)         point=a.tell()         time.sleep(60) 7、集合 天生去重 1)定义集合的两种方式: s=set() s1={'1','2','3','4'}只存在key值不存在values 即为集合 2)将重复的list强制set: s2=[1,2,3,4,5,6,6,6,7] print(set(s2)) 运行结果:s2={1,2,3,4,5,6,7} 3)集合是没有顺序的,不存在角标 s3={1,2,3,4,5,6} print(s3[0]) 运行结果:报错,不存在角标 4)增加值,添加重复的值无效 s4={'a','b','c','d','e','f','g','h'} s4.add('kk') print(s4) 运行结果是 s4={上述+'kk'}  无序 5)交集(关系测试)(2种方式) s3={1,2,3,4} s4={3,5} print{s3.intersetion(s2)) 运行结果:{3} 另一种方式s3&s4
6)并集(2种方式) s3={1,2,3,4} s4={5,6} print(s4|s3) 运行结果:{1,2,3,4,5,6} 另一种方法,s4.union(s3) 7)差集 s3={1,2,3,4,5,6} s4={1,8,9} print(s4.differeence(s3)) 运行结果:{8,9}s4不同于s3的地方 8)删除值(和随机删除一个值) s3={'1','2','3','4','5','6','7','8'} s3.pop()随机删除一个值  s3.remove('1')删除固定值 print(s3) 8、函数 函数名+函数体+调用 1)函数的意义:把代码整装成一个组合,提高代码的复用性;函数需要被执行 2)如何定义函数 def hello():     函数名hello     print('ss')  输入值 hello()          调用        运行结果 ss 3) def a():     b=open('a.txt','a+',encoding='utf-8')     b.seek(0)     b.write('zhann')     b.close() a() def a(name,content):     b=open(name,'a+',encoding='utf-8')     b.seek(0)     b.write(content)     b.close a('z.txt','内容')   形式参数 name content   实际参数 'z.txt','内容'   位置参数 必填参数 a(name,content)   默认值参数,非必填 a(name,content='') content='',是默认为空,不必须填写,若填写了,则按照填写的内容加入 4)返回值return:
def a(name,content=''):     b = open(name, 'a+', encoding='utf-8')     if content:         b.write(content)         b.seek(0)   res =b.read()     else:         b.seek(0)  res=b.read()     b.close() return res print(a('xx3.txt')) print(a('xx4.txt','c'))
如果想获取到函数处理的结果,那么必须return: 若没有return 则运行结果为none: return 的作用,立即结束代码 5)返回值和关闭文件的先后顺序:close在return之前 6)全局变量 局部变量 函数里面的变量都是局部变量 a=100#全局变量
def test():     global a#声明全局变量,才能修改为局部变量     a=5 #局部变量     print(a) def test1():     a=1     print(a) test() test1() print(a) 声明了全局变量,此处打印的是全局变量
7)可变参数
def test (a,b=1,*args): print(a) print(b) print(*args) test('1','3','56','78','gh')
位置调用:前两个写入对应的a 和b,后面的全部写入*args 关键字调用:
def test (a,b=1,*args):     print(a)     print(b)     print(*args) t=[1,2,3] test(*t) 另一种方式:
test(b=5,a=10)
关键字参数,字典key-values
def test2(**kw):     print(kw) test2(name='s',sex='') 8)模块
分3种
# 1、标准模块,pyhthon 自带,不需要安装 os time random # 2、第三方模块, 需要安装(pip install ...),别人提供的 #    手动安装时,下载安装包-解压-打开文件,在命令行(shift+鼠标右键)里进入到解压后的目录 查找python安装文件在哪里的命令,where pthon #    执行Python setup.py install # 3、自己写的,自己写的python文件
9)环境变量 是让一个命令不管在哪个目录下都可以运行
import 模块名,实质是把python运行一次 print(模块名.函数名(...)) import导入的时候,先从当前目录下找,再从python的环境变量中找 a.从当前目录安装 import 模块名 b.如何查看当前系统的环境变量 import sys print(sys.path)
c.若要导入其他目录下的python文件,需要先将文件复制到python安装目录,再去导入
import sys print(sys.path) import haha
10)把字典的数据写入到文件中 a={'name':'zz'} f=open('b.txt','a+',encoding='utf-8') f.write(str(a))  字符串转换成字典eval  字符串必须是字典格式的
ame':'zz'} f=open('b.txt','a+',encoding='utf-8') f.seek(0) # f.write(str(a)) dict=eval(f.read()) print(type(dict)) f.close(

转载于:https://www.cnblogs.com/sheery/p/8259706.html

你可能感兴趣的文章
eclipse中使用git上传到githup,报401 Authorization Required
查看>>
基于Golang打造一款开源的WAF网关
查看>>
POJ 2955 Brackets
查看>>
Python: execute an external program (zz)
查看>>
在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)
查看>>
Ubuntu14.04安装JDK
查看>>
Latex 公式换行问题(换行,等号对齐)
查看>>
php mysqli解决乱码
查看>>
VC Q&A (原创)
查看>>
linux命令
查看>>
多线程(一)NSThread
查看>>
POJ 2584 T-Shirt Gumbo
查看>>
闭包2
查看>>
轮播图组件及vue-awesome-swiper的引入
查看>>
Java 笔记07
查看>>
POJ 3041 Asteroids (二分匹配)
查看>>
响应式布局
查看>>
缺陷跟踪系统Mantis之安装篇(转载)
查看>>
UI1_UITableViewHomeWork
查看>>
简单解析依赖注入(控制反转)在Spring中的应用
查看>>