天天看点

使用for循环遍历文件、使用while循环遍历文件

使用for循环遍历文件、使用while循环遍历文件

1、打开文件读

打开文件,从头到尾读完后,再执行read()就没有了

使用for循环遍历文件、使用while循环遍历文件

关闭后就不能读

使用for循环遍历文件、使用while循环遍历文件

readlines()和readline()区别:

readline() :一行一行读取,返回字符串,当指针到文件末尾后,返回空

readlines():整个内容都输出,再输入,返回空

fd.next(): 和readline() 差不多,不过读完最后一行,返回报错

使用for循环遍历文件、使用while循环遍历文件
使用for循环遍历文件、使用while循环遍历文件

2、打开文件写

f = open('/tmp/123.txt','w') #当执行这句话后,文件立刻被清空

f.write('456') #写入456,此刻123.txt文件还没有写入内容,只有当文件关闭才会写入

f.close() #此刻写入

比如要关闭文件。如果不关闭,导致内容无法写入

3、追加模式(a),没有读的权限,只有追加的权限

使用for循环遍历文件、使用while循环遍历文件

4、[root@centos7-3 python]# cat file1.py

<code>**注意:这里for line in fd,其实可以从fd.readlines()中读取,但是如果文件很大,那么就会一次性读取到内存中,非常占内存,而这里fd存储的是对象,只有我们读取一行,它才会把这行读取到内存中,建议使用这种方法。**</code>

1、

with open('123.txt') as fd:

while True:

line=fd.readline()

if not line:

break

print line,

2、with open('123.txt','w+') as fd:

fd.write('123123\n123123')

3、计算内存大小

startswith():以什么开头的行列出来

使用for循环遍历文件、使用while循环遍历文件

.split():以什么分隔符分割,默认是空格

使用for循环遍历文件、使用while循环遍历文件

In [66]: with open('/proc/meminfo') as fd:

...: for line in fd:

...: if line.startswith('MemTotal'):

...: total=line.split()[1]

...: continue

...: if line.startswith('MemFree'):

...: free=line.split()[1]

...: break

...: print "%.2f" %(int(free)/1024.0) + 'M'

...: 

1460.55M

练习1:

\n:表示换行符

现有一个文件test.txt ,内容如下:

1234efgh

abcd5678

要求读出文件内容,对内容的顺序进行编辑,然后重新写入到文件,使其为如下形式

12345678

abcdefgh

In [1]: with open('test.txt','w') as fd:

...: fd.write('12345678\nabcdefgh\n')

本文转自 iekegz 51CTO博客,原文链接:http://blog.51cto.com/jacksoner/2055606,如需转载请自行联系原作者