python 关于文件操作

1,要求在文件 2.py 第六行插入一句话;
1 #cat  /root/python/2.py 
2 昨夜雨疏风骤1
3 昨夜雨疏风骤2
4 昨夜雨疏风骤3
5 昨夜雨疏风骤4
6 昨夜雨疏风骤5
7 昨夜雨疏风骤6
8 昨夜雨疏风骤7
 1 # vim  /root/python/file.py
 2 f = open("/root/python/2.py","r")
 3 num = 0
 4 for i in f.readlines():
 5   num+=1
 6   if num == 6:
 7 #   i=i.strip() + "i love you"           # 两种方法,下面那种性能更好些(join)
 8     i=''.join([i.strip(),"i love you"])
 9   print i.strip()
10 f.close()
 1 运行结果:
 2 
 3 [root@localhost python]# python 3.py 
 4 昨夜雨疏风骤1
 5 昨夜雨疏风骤2
 6 昨夜雨疏风骤3
 7 昨夜雨疏风骤4
 8 昨夜雨疏风骤5
 9 昨夜雨疏风骤6i love you
10 昨夜雨疏风骤7
 1 2, readlines()是讲对象整体拷贝到内存当中,如果一个文件过大的话,读取效率会很低,所以用到了迭代器,意思是用到文件中某一行取一行,用一个取一个,而不是首先将整体翻入内存当中;
 
2
# vim /root/python/file.py 3 f = open("/root/python/2.py","r") 4 num = 0 5 for i in f: 6 num+=1 7 if num == 6: 8 i=''.join([i.strip(),"i love you"]) 9 print i.strip() 10 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

 

posted @ 2018-01-15 22:15  lixinliang  阅读(196)  评论(0编辑  收藏  举报