python3初识 之 文件操作
文件基本操作:
1 f = open('cup.txt','r',encoding='utf-8') 2 data = f.read()#输出字符串类型 3 print(data) 4 f.close() 5 6 f = open('cup.txt','r+',encoding='utf-8')#文件句柄 7 data = f.read() 8 data_1 = f.readline()#每次读一行,返回字符串 9 data_2 = f.readlines()#全部读出来生成列表 10 f.write('余生请多指教,\n') 11 print(data) 12 f.close()
光标操作:
1 f = open('cup.txt','r',encoding='utf-8') 2 print(f.tell())#获得光标当前位置 3 print(f.readline()) 4 print(f.readline()) 5 print(f.tell()) 6 f.seek(0)#光标返回指定位置 7 print(f.tell()) 8 print(f.encoding)#编码
强制刷新:
1 #f.flush()#强制刷新 2 import sys, time 3 for i in range(50): 4 sys.stdout.write('#') 5 sys.stdout.flush() 6 time.sleep(0.1) 7 ''' 8 #f.truncate()#截断
文本内容打印,并更换某行内容:
1 f = open('cup.txt','r',encoding='utf-8') 2 count = 0 3 for line in f: 4 if count == 6: 5 print('-------------我是分割线lalalalalalalalalal----------------') 6 count += 1 7 continue 8 count += 1 9 print(line)
文件修改:(创建新文件用以修改)
1 f = open('cup.txt','r',encoding='utf-8') 2 f_new = open('cup1.txt','w',encoding='utf-8') 3 for line in f: 4 if "让世界都认识" in line: 5 line = line.replace("让世界都认识","让世界都认识CZZ") 6 f_new.write(line) 7 f.close() 8 f_new.close()
with语句:
with open("filename") as f1,\ open("filename") as f1:#自动关闭文件 print("hello world")
文件打开模式:
打开文件的模式有:
- r,只读模式(默认)。
- w,只写模式。【不可读;不存在则创建;存在则删除内容;】
- a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
- r+,可读写文件。【可读;可写;可追加】
- w+,写读
- a+,同a
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
- rU
- r+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
- rb
- wb
- ab
优美胜于丑陋(Python 以编写优美的代码为目标)//
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)//
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)//
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)//
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)//
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)//
可读性很重要(优美的代码是可读的)//
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)//
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)//
当存在多种可能,不要尝试去猜测‘而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)。虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )//
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)//
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)//
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)//