码迷,mamicode.com
首页 > 编程语言 > 详细

python(五)文件操作

时间:2016-05-28 06:36:00      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

1、打开文件

f = open(‘db‘,‘r‘)   #只读

f = open(‘db‘,‘w‘)   #只写,先清空原文件

f = open(‘db‘,‘x‘)   #文件存在,报错,不存在,创建并只写

f = open(‘db‘,‘a‘)   #追加

所有后边加b的,都是以字节的方式打开文件,不需要python帮助转换成字符串类型。如:ab、rb、wb、xb

f = open("db","ab")

#当以字节的方式打开时,往文件中写入的时候也要用写入字节,写字符串会报错。

f.write(bytes("坚持",encoding="utf-8"))

f.close()

"+"表示可以同时读写文件

r+, 读写【可读,可写】

w+, 写读【可读,可写】

x+ ,写读【可读,可写】

a+, 写读【可读,可写】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
f = open("db","r+",encoding="utf-8")
data = f.read()
print(data)
f.write("111")
f.close()
#文件有一个指针,f.read读文件了,指针就会到最末尾。
#f.seek(1)  功能是主动把指针调到一个位置,f.seek(1),把指针跳到1的位置。写的时候会从指针
#开始往后覆盖,不是追加。
#python只要一读,再往里写内容时,会默认在最后追加。所以此时需要通过tell和seek来把指针移到当前位置
#seek的时候永远是以字节的方式找位置。即使有中文,如果f.seek(1),就会把中文给分开。
#如果打开模式无b,则f.read(1) 如果以字符串的方式打开,就会读取一个字符。
#print (f.tell())   获取当前指针的位置。(字节)
#f.seek(f.tell())   调整当前指针的位置。(字节)
#f.write("888")     #当前指针位置开始向后覆盖

2、操作文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
read()     #无参数,读全部;有参数:
                               b:按字节
                               无b:按字符
tell()     #获取当前指针位置
write()    #写数据,b:字节; 无b,字符
close()
fileno()   #文件描述符
flush()    #强刷,强制保存到硬盘。在文件close之前,写入的内容此时如果其他程序去读,是看不到的。如果使用f.flush(),就会强制把内容刷进去,
#即使没有close,其他程序也可以看到文件中更新的内容了。
readline() #仅读取一行,不会出现文件巨大,把内存撑爆
truncate() #截断,执行truncate()后,指针后边的内容会全部删除,例:
f = open("db","r+",encoding="utf-8")
f.seek(3)
f.truncate()
f.close
#for循环文件对象f = open(xxx)

3、关闭文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
f.close()
with open(‘db‘,‘r+‘,encoding="utf-8") as f:
    pass
#使用with open方式打开文件,当代码块执行完后,文件自动关闭。
 
#with打开多个文件
with open(‘db‘) as f1, open(‘db2‘) as f2:
    pass
示例:读取一个文件前十行,写入到另一个文件中
with open(‘db‘,‘r‘,encoding=‘utf-8‘) as f1, open(‘db2‘,‘w‘,encoding=‘utf-8‘) as f2:
    times = 0
    for line in f1:
        time += 1
        if times <= 10:
            f2.write(line)
        else:
            break








python(五)文件操作

标签:

原文地址:http://www.cnblogs.com/yangruizeng/p/5536668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!