python 学习之路(文件操作)
对文件的操作步骤为
1. 打开文件
2. 对文件的操作
3. 关闭文件
打开文件并读取
上图可以看见文件目录
data = open('markdown',encoding='utf-8').read()
print(data) #打印出markdown文件里面的内容
对文件操作
f = open('markdown','w' ,encoding='utf-8') # 将文件 markdown 存成一个对象
# 其中参数 w 是创建一个文件 并可写 不能读;
# 如果参数是 r 就是只读,不能写;
# 如果参数是 a 则可以向文件后面进行追加内容 不能读;
# r+ 既能读又能写 ;
# w+ 写读 但是还是会创建新文件 ;
# rb wb 二进制的格式读文件 (网络传输,视频等二进制文件,都需要用二进制格式打开)
f.read() # 读方法
f.write('哈哈哈。。。。。。。') # 写方法
f.readline() # 读一行 如果想读多行 可以用for循环
f.readlines() # 将文件转换成列表 一行就是一个列表值['第一行','第二行']
for line in f: # f不是列表了,是迭代器了;(以后会讲迭代器)
print(line) # 这种方式读取不readline效率要高
f.close() # 关闭文件
print(f.tell()) # 读取指针
print(f.read(5))
print(f.tell())
#打印值为:0
#abcde
#5
f.seek(0) #将指针 回到 0 的位置
# 如:
print(f.read(5)) # 打印 abcde
print(f.read(5)) # 打印 fghij
f.seek(0) #将指针 回到 0 的位置
print(f.read(5)) # 打印 abcde
f.encoding # 编码
f.fileno() # 返回一个编号 ,不是内存地址编号
f.readable() # 判断文件是否可读
f.writable() # 判断文件是否可写
f.flush() # 将缓存 强刷到硬盘中
f.closed # 判断文件是否关闭了
f.truncate() # 参数如果若果为空,则清空文件 如果有数字则保留 多少。 截断
修改文件内容
将上图的所有的‘二级标题’改成‘我的二级标题’
f = open('markdown','r',encoding='utf-8') # 先用读的方式 打开文件
f_new = open('markdown.bak','w',encoding="utf-8") # 用写的方式打开文件 创建新文件
for line in f:
if '二级标题' in line:
line = line.replace("二级标题",'我的二级标题') # 替换
f_new.write(line) # 写入新文件
f.close()
f_new.close()
创建出的新文件的内容如下:二级标题都变了。
用with语句 实现自动关闭文件
with open('markdown','r',encoding='utf-8') as f:
for line in f:
print(line)
# open可以同时打开多个文件 with open('file1') as f1,open('file2') as f2
# 这里注意,一行最好不要超过80个字符 ,超过可以用 \ 技术
with open('markdown','r',encoding='utf-8') as f ,\
open('markdown.bak','w',encoding="utf-8") as f1:
for line in f:
print(line)
赠送
import sys,time
for i in range(30):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)
可以做到以下动态图画