zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    How to function call using 'this' inside forEach loop
    jquery.validate.unobtrusive not working with dynamic injected elements
    Difference between jQuery.extend and jQuery.fn.extend?
    Methods, Computed, and Watchers in Vue.js
    Caution using watchers for objects in Vue
    How to Watch Deep Data Structures in Vue (Arrays and Objects)
    Page: DOMContentLoaded, load, beforeunload, unload
    linux bridge
    linux bridge
    EVE-NG网卡桥接
  • 原文地址:https://www.cnblogs.com/lixinliang/p/8290246.html
Copyright © 2011-2022 走看看