#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