python 学习之路(文件操作)

来源:互联网 发布:女性网络信托基金产品 编辑:程序博客网 时间:2024/06/05 06:30

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#5f.seek(0) #将指针 回到 0 的位置# 如:print(f.read(5)) # 打印 abcdeprint(f.read(5)) # 打印 fghijf.seek(0) #将指针 回到 0 的位置print(f.read(5)) # 打印 abcdef.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,timefor i in range(30):    sys.stdout.write("#")    sys.stdout.flush()    time.sleep(0.1)

可以做到以下动态图画
这里写图片描述

原创粉丝点击