python2.7追加文件内容

编程入门 行业动态 更新时间:2024-10-19 03:24:15

python2.7追加<a href=https://www.elefans.com/category/jswz/34/1771438.html style=文件内容"/>

python2.7追加文件内容

测试环境:python2.7.12  &&  linux-cmd-python-cli

1.打开一个文件

file=open(name[,mode[buff]])  ####[,mode[buff]]的参数值是选填的,可以省略.

1)name:文件的路径

2)mode:打开方式

[1]r:只读模式.文件必须存在

[2]r+:读写方式,当写入的内容会替换掉文件中与之匹配相同字符的内容,文件必须存在

[3]w:只写模式,文件不存在,创建文件,如果存在,文件内容会被清空.

[4]w+:读写方式,文件不存在,创建文件,如果存在,文件内容会被清空.

[5]a:追加模式,在文件结尾处添加文件.文件不存在的时候会自动创建文件.

[6]a+:追加模式和读写模式

[7]打开二进制文件:rb,wb,ab,rb+,wb+,ab+

3)buf:缓冲区buffering的大小

file.mode   ---->返回文件打开模式

file.name  ---->返回文件名称

dir(file)    ---->查看file可以操作的方法和属性

2.读取文件:

1).read([size])   : 读取文件(读取size个字节,如果缺省size,则读取全部)

2).readline([size]):  读取一行,如果size大小大于一行size大小,则显示这一行,如果size小于这一行size大小,则只显示该字符大小的内容,在使用readline(),显示剩下这一行的内容.

3)readlines([size]): 不一定会读取完文件(需要看文件大小和io.DEFAULT_BUFFER_SIZE的大小),返回每一行所组成的列表(如果文件很大,会占用很大空间),当size>0时候,缓存中只会夹在io.DEFAULT_BUFFER_SIZE的字节数.只有当size不是正整数的时候才能获取到全部内容.

可以通过遍历的方式读取文件内容: for in  file.readline():   print i

4)iter迭代器读取文件内容:

for i in iter(file):

print i

3.写入文件:

1)write(str):将字符串写入文件中

2)writelines(sequence_of_strings):写多行到文件中

writelines写入的必须是字符串,元组和列表中的元素必须都是字符串,file.writelines(['1','2','3'])

补充:写入的内容只有在如下两种方式的情况下,才会保存到文件中:

[1]file.close()或者是f.flush()

[2]当写入的内容超出缓存空间的时候,会将已经满的缓存内容写到文件中,超出缓存内容但是没有达到缓存最大值的,还是会在留在缓存

for i in range(1,10000):

f.write('write test'+str(i)+'\r\n')     ----->文件中有9797行

再次使用 f.flush()                                    ------>文件有9999行

4.文件关闭:

file.close()    ---->如果打开的太多,超过系统文件打开最大值.文件就会无法打来.

file.fileno()  ------>显示当前系统中已经打开的文件数

查看系统中打开文件最大值:ulimit -a

5.文件定位:

file.tell()方法告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。           file.seek(offset [,from])方法改变当前文件的位置。

Offset变量表示要移动的字节数。

From变量指定开始移动字节的参考位置。

如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

#如果偏移量超出文件的字节数,会报错.

6.文件属性:

1)file.fileno() 文件描述符

2)file.mode  文件打开的权限模式

3)file.encoding 文件编码格式

4)file.closed()    文件是否关闭    ---->False 没关闭   ,True 关闭

7.标准文件:

1)文件的标准输入: sys.stdin

2)文件标准输出: sys.stdout

3)文件标准错误: sys.stderr

8.文件编码(输入中文):

1)f.write(unicode.encode(u'你好','utf8')

f.flush()----->文件中就可以输入中文.但是在查看a=unicode.encode(u'你好','utf8'),查看a的时候'\xe4\xbd\xa0\xe5\xa5\xbd'

2)使文件在打开的时候就被定义成utf8编码:

import codecs

#open(filename, mode='rb', encoding=None, errors='strict', buffering=1)

f=codecs.open('test','r+','utf8')

f.encoding

--->回显   'utf8'

f.write(u'特别')

f.flush()    ---->文件中就可以输入中文

9.os模块对文件的操作:

import os

1).打开文件:f=os.open(filename,flag[,mode])

flag--->打开文件方式:

os.O_CREAT:创建文件

os.O_RDONLY:只读方式打开

os.O_WRONLY:只写方式打开

os.O_RDWR:读写方式打开

2).读取文件: os.read(f,buffersize)

3).写文件:   os.write(f,'要写的内容') ---->返回字节数,或者说是指针位置

4).文件指针操作: os.lseek(f,pos,how) ----->返回指针位置

5).关闭文件: os.close(f)

10.os模块方法的其他使用

1)判断文件权限: os.access('path',mode)--->mode:os.F_OK 文件是否存在  os.R_OK 读权限  os.W_OK 写权限  os.X_OK 执行权限

2)返回当前目录下所有文件的列表:  os.listdir('path')

3)修改文件名称: os.rename('old','new')

4)删除文件: os.remove('path')

5)创建单级目录: os.mkdir('path'[,mode])

6)创建多级目录:os.makedirs('./ceshi1/ceshi2/ceshi3')

7)删除目录:  os.rmdir('path')

8)删除多级目录:os.removedirs('./ceshi1/ceshi2/ceshi3')

11.os.path模块方法的使用:

1)当前路径是否存在: os.path.exists(path)

2)是否是目录:  os.psth.isdir(s)

3)是否是文件: os.path.isfile('path')

4)返回文件的大小: os.path.getsize('path')

5)返回路径的目录: os.path.dirname(path)

6)返回路径的文件名: os.path.basename(path)

12.利用ConfigParser模块管理ini文件

1)创建一个实例: cfg=ConfigParser.ConfigParser()

2)将文件加载到实例中:  cfg.read('文件名')

3)查看文件中的sections的值: cfg.sections()

for  se  in cfg.sections()

print  se

print  cfg.items()

查询结果:

userinfo    ----->section的值

[('name', 'wang'), ('passwd', '123456'), ('addr', 'bj')]   ------>item的值

study

[('python_base', '15'), ('python_junior', '20')]

4)修改/添加item的值:

cfg.set('section','item-key','item-value')    ------->如果这个item-key不存在,会添加此key和value到section中

5)删除item的值:

cfg.remove_option('section','item-key')

6)删除一个section:

cfg.remove_section( 'section')

7 )添加一个section:

cfg.add_section('section')

8)文件的保存:

f=open('文件名',w+)

f.write(f)

f.close()

更多推荐

python2.7追加文件内容

本文发布于:2024-03-23 23:40:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1744211.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   内容

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!