文件操作

能调用方法的一定是对象

打开 with open(文件绝对路径或者相对路径,‘rwa’)as f:

append 追加

操作   f.read()

关闭   f.close()

f.write('hello world')  文件存在的情况下  ,会清空内容再写入hello world

文件不存在的情况下,会创建再写入hello world

注意!!! 这里清空的操作不是在write的时候执行的,而是在上面打开(w)的时候就已经执行了

==================

py里面的文件句柄方法  fileno

===================

打开文件之后一定要记得关闭文件

====================

 

文件操作一系列的方法-------------------------------------

f.readline()

readline 一行行的读

f.readlines  输出一个列表,里面是每行内容形成的字符串(包括换行符)

要遍历列表里的字符串的话,用for循环,记得加.strip()去左右两边的空格和换行。!!!

readlines会把打开的文件放到内存里,如果文件很大,一般不用这个

查看光标位置f.tell()   英文一个字母是一个字符,中文的话 一个字母是3个字符。

f.seek() 设置任意位置的光标,方便读操作和写操作 (类似于网络断点续传)

=======================================

f.flush 帮助我们把缓存里面的数据刷到硬盘上去

例子

import sys,time

for i in range(30):

  sys.stdout.write('*')

  sys.stdout.flush()   //这里如果没有flush的话,他会把数据先放到缓存区,等全部循环完,才会一次性刷新到硬盘,而有了flush的话是每次都会刷新到硬盘。 

  time.sleep(0.1)

 

print()里面也可以更flush=True  这样就是实时打印了

truncate(5) 可以截取文件里的内容    1代表1个字符

isatty  判断打开的是否是一个终端。

 

r+模式  ,该怎么读怎么读,但是写的时候只能写在最后

w+模式,文件创建的时候里面被清空了,写了东西之后再去读还是读不到数据,因为光标已经到后面了

a+模式,写入的时候从最后写入,但是读取的时候是是读不到东西的,因为append是追加,光标在最后,读后面读不出东西。

modify_configuration_file.py

zz_read = open('zz', 'r', encoding='utf8')
zz_write = open('zz1', 'w', encoding='utf8')
num = 0
for i in zz_read:
if num == 2:
i = ''.join([i.strip(), "modify\n"])
num += 1
zz_write.write(i)

 

posted on 2018-06-27 17:05  zoery  阅读(114)  评论(0编辑  收藏  举报