python 关于文件操作

时间:2022-05-24 20:39:06
,要求在文件 .py 第六行插入一句话;
 #cat  /root/python/2.py
2 昨夜雨疏风骤1
3 昨夜雨疏风骤2
4 昨夜雨疏风骤3
5 昨夜雨疏风骤4
6 昨夜雨疏风骤5
7 昨夜雨疏风骤6
8 昨夜雨疏风骤7
 # vim  /root/python/file.py
f = open("/root/python/2.py","r")
num = 0
for i in f.readlines():
num+=1
if num == 6:
# i=i.strip() + "i love you" # 两种方法,下面那种性能更好些(join)
i=''.join([i.strip(),"i love you"])
print i.strip()
f.close()
 运行结果:

 [root@localhost python]# python 3.py
昨夜雨疏风骤1
昨夜雨疏风骤2
昨夜雨疏风骤3
昨夜雨疏风骤4
昨夜雨疏风骤5
昨夜雨疏风骤6i love you
昨夜雨疏风骤7
 2, readlines()是讲对象整体拷贝到内存当中,如果一个文件过大的话,读取效率会很低,所以用到了迭代器,意思是用到文件中某一行取一行,用一个取一个,而不是首先将整体翻入内存当中;

2 # vim /root/python/file.py
f = open("/root/python/2.py","r")
num = 0
for i in f:
num+=1
if num == 6:
i=''.join([i.strip(),"i love you"])
print i.strip()
f.close()
#f 是 即将在for 循环内部的一个迭代器,而不是之前的 f.readlines(),readlines是将打开文件的内容完全复制一 份,而此时的f是取一行用一行,print完一行内存当中
就没有了这一行,在对一个打的文件进行运用时这种性能会更好一些。

3,创建一个新的文件,并且能够实现文件内容某行的字符窜拼接。

已有文件:

[root@localhost python]# vim shici.py
轻舟已过万重山1
轻舟已过万重山2
轻舟已过万重山3
轻舟已过万重山4
轻舟已过万重山5
轻舟已过万重山6
轻舟已过万重山7 脚本如下: [root@localhost python]# vim 1.py
f_read = open("/root/python/shici.py",'r')
f_write = open("/root/python/mumu.py",'w') num=0
for line in f_read:
num += 1
if num == 5:
line = '------'.join([line.strip(),"hello 岳飞\n"])
f_write.write(line)
f_read.close()
f_write.close() 运行脚本: [root@localhost python]# python 1.py 查看结果: [root@localhost python]# vim mumu.py
轻舟已过万重山1
轻舟已过万重山2
轻舟已过万重山3
轻舟已过万重山4
轻舟已过万重山5------hello 岳飞
轻舟已过万重山6
轻舟已过万重山7