设为首页 加入收藏

TOP

Python之----文件操作
2017-10-10 21:05:50 】 浏览:2884
Tags:Python ---- 文件 操作

文件操作:
读:
f = open("file1","r",encoding="utf-8")

f.read()------全部读,并且是字符串形式。
f.readline()--读第一行
f.readline()--读第二行
f.readlines()-全部读出来,并且是列表形式。
print(f.tell())--查看读取操作完了后,光标的位置
f.seek(0)-----将光标放到起始位置
f.close()
上述方法读取文件,都会把内容存到内存中,大文件的话,这样处理不行。所以以后不建议这么使用。
将文件打开后,一行一行的读取,内存中只存一行内容,方法如下:
for i in f:---此时的f,是一个迭代器?
print(i)
f.close()


写:
f = open("file2","w",encoding="utf-8")---‘w’会新建,如果有,也会覆盖掉
f.write("大傻子")
f.close()

f = open("file2","r+",encoding="utf-8")---读写模式,可以先读,再写,但是写只能写到最后

f = open("file2","w+",encoding="utf-8")---新建再读模式,就算把光标放到前面区,再写,也只能在最后。

f = open("file1","rb")---以二进制、读模式打开
f = open("file1","wb")---以二进制、写模式打开
f = open("file1","ab")---以二进制、追加模式打开

f.flush()-----默认是需要内存积攒到一定程度才开始往硬盘写,该命令使其强行刷新,写到硬盘,其到了实时的作用。
进度条:
import sys,time
for i in range(20):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(1)

修改:
思路:从old文件一行一行的读,读取一行,判断一行。一行一行的写到new文件。
f = open("file1","r",encoding="utf-8")
f_new = open("file1.bak","w",encoding="utf-8")
for line in f:
if "哈哈哈哈" in line:
line = line.replace("哈哈哈哈","我好牛逼")
f_new.write(line)
f.close()
f_new.close()
os.remove("info.txt")---------删除源文件
os.rename("info_new.txt","info.txt")------重命名回去

避免忘记close文件,可以采用如下办法,且可打开多个文件:
with open("file1","r",encoding="utf-8") as f,\
open("file1.bak","r",encoding="utf-8") as f2:
print(f.readlines())
print("-"*20)
print(f2.readlines())

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python输出带颜色的字符串 下一篇Phyton学习笔记

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目