首页 > 代码库 > 文件处理
文件处理
碎碎念:自私是共同获益的原动力
问题:代理两难
代理两难出现在,委托-代理模式中,委托者有所有权,代理者有经营权。矛盾点出现在双方都觉得收益应该归自己。
再有就是“荆棘效应”,代理者做的越好,委托者第二年越会提高指标。代理者最优选择是想办法降低委托者的预期,即使会损失市场
解决方法:激励相容
对于创业公司,委托者面对风险,所以要求代理者(总经理)必须购买10%的股份,核心团队买15%,这样对于能干的人,肯定不怕出钱。
对于母公司,要求出资50%,母公司高管也出资25%,不投立即开除。因为母公司和子公司会有业务往来,用到母公司资源。
激励相容,就是承认人性的自私,用正确的机制,让“自私”,而不是“集体主义精神”,成为大家共同获益的原动力
文件的操作
本质就是把文件内存对象读取到一个变量里,f就是那个变量,之后再对文件进行操作,如read,readline等
f = open("lyrics",encoding=‘utf-8‘) #读取文件内存对象
基本方法
读
f.read() #读取文件内容,将文件内容都读取到内存中 f.readline() #读取文件一行信息 f.readlines() #读取所有行,用列表展示出来,一行为一个元素
for index,line in enumerate(f.readlines()): #读取前5行(注意,效率低!不建议使用) if index < 5: print(line) else: break
写
f = open("myfile",‘w‘,encoding=‘utf-8‘) #创建写模式,会覆盖原有文件,不能读取文件 f.write("我爱北京") f.close()
追加
f = open("myfile",‘a‘,encoding=‘utf-8‘) #追加模式,不会覆盖原有文件,不能读取文件 f.write("我爱北京") f.close()
其他操作
print(f.closed) #判断文件是否关闭,在操作文件前,可以先判断一下文件是否关闭 print(f.encoding) #判断文件字符编码 f.flush() #强制写入到硬盘中 f.name #打印文件名 f.isatty() #判断是否为设备文件 f.seek(10) #把光标向后移动10个字符 f.tell() #打印光标位置 f.truncate() #截断,用r+模式打开,主要用于二进制文件的截断,例如做断点续传
关于读写的混合模式
#读写——如果读了,那就从最底下一行追加;如果没读,则从头读取,并覆盖原有文件
f = open("myfile",‘r+‘) print(f.readline()) f.write("insert\n") f.close()
#写读——等同于w,没有意义
f = open("myfile",‘w+‘)
#追加读——和a效果一样,没有意义
f = open("myfile",‘a+‘) print(f.readline()) f.write("insert\n") f.close()
常用姿势汇总!!!!
常用姿势汇总!!!!
常用姿势汇总!!!!
读一行
f.readline().strip() #将一行的空格和换行去掉
读取前5行,方法一
f = open("lyrics",encoding=‘utf-8‘) for i in range(5): #读取前5行,注:一行行的读取 print(f.readline().strip()) f.close()
读取前5行,方法二
f = open("lyrics",encoding=‘utf-8‘) line_nu = 0 #读取前5行,注:一行行的读取 for line in f: if line_nu < 5: print(line.strip()) line_nu += 1 f.close()
#费硬盘的修改方式
f = open("lyrics",‘r‘,encoding="utf-8") f2 = open("lyrics_new",‘w‘,encoding="utf-8") find_str = "夜晚的" new_str = "白天的寒冷的" for line in f: if find_str in line: line = line.replace(find_str,new_str) f2.write(line) f.close() f2.close()
#费内存的修改方式
f = open("lyrics",encoding="utf-8") content = f.readlines() f.close() find_str = "夜晚的" new_str = "白天的寒冷的" f = open("lyrics",‘w‘,encoding="utf-8") for line in content: if find_str in line: line = line.replace(find_str,new_str) f.write(line) f.close()
文件处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。