study note3

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "Deakin"
# Email: 469792427@qq.com
# Date: 2017/12/27
#第10行添加分隔符
f=open("yesterday",'r',encoding="utf-8")
count=0
for line in f: #一行一行的读,而且内存里只保存1行,针对大文件
if count==9:
print("-------分割线--------")
print(line.strip()) #strip:去除空格和回车
count=count+1

#第10行替换为分割线
count=0
for line in f:
if count==9:
print('------分割线-------')
count +=1
continue #理解continue的意义,在count==9的时候,
print(line.strip()) #在count==9的时候,此行不执行,因此第10行的内容直接变成了分隔符,而原来的内容不见了
count +=1
PS:对比2个语句输出不同的地方:分别为No.1的第10行插入了分隔符,No.2的第十行的句子替换为分隔符
------------------------------------------------
对文件操作的一些常用命令:
print(f.tell()) #打印光标所在位置             0
print(f.readline()) # When I was young I'd listen to the radio
f.seek(1) #让光标回到某位置,字节为单位
print(f.tell()) # 1
f.flush() #使更改的内容立刻写到硬盘里

 模块乱入:打印进度条,f.flush()的应用

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "Deakin"
# Email: 469792427@qq.com
# Date: 2017/12/26

import sys,time

for i in range(10):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)
--------------------------------------------------------------
读写:r+,相当与在追加(a)的前提下可以读,但是只能写到文件的最后面,偶尔有用
f=("yesterday",'r+',encoding="utf-8")
f.write("balabala")
写读:w+ 没卵用,新建一个文件然后可以读
追加读:a+没卵用

二进制输入:
f=open("yesterday",'rb') #网络传输和二进制文件必须用二进制打开
f.write("hello binary".encode())#需要加.encode宣告类型,否则会报错(TypeError: a bytes-like object is required, not 'str')

文件修改与替换:
f=open("yesterday",'r',encoding="utf-8")
f_new=open("yesterday1",'w',encoding="utf-8")

for line in f:
if "他们又开始唱得如此动听" in line:
line = line.replace("他们又开始唱得如此动听","我又开始唱得如此动听")
f_new.write(line)

posted @ 2017-12-27 22:42  Deakin-DJ  阅读(86)  评论(0编辑  收藏  举报