Python之文件操作

写Python时间也不短了,但对于几个常用的文件操作方法的区别老是记不住,用的时候要再查一查,故记录一下。

输出:

  • read()方法用于直接读取字节到字符串中,可以接参数给定最多读取的字节数,如果没有给定,则文件读取到末尾。

  • readline()方法读取打开文件的一行(读取下个行结束符之前的所有字节),然后整行,包括行结束符,作为字符串返回。

  • readlines()方法读取所有行然后把它们作为一个字符串列表返回。

read()

1
2
3
4
5
6
7
8
9
cat /root/1.txt
I'll write this message for you
hehe,that's will be ok.
#默认已只读方式打开
>>>>f = open('/root/1.txt')
>>>>a = f.read()
>>>>a
#直接读取字节到字符串中,包括了换行符
"I'll write this message for you\nhehe,that's will be ok.\n"

readline():

1
2
3
4
5
6
7
8
>>>> f = open('/root/1.txt')
>>>>b = f.readline()
>>>>b
#读取整行,包括行结束符,作为字符串返回
"I'll write this message for you\n"
>>>>c = f.readline()
>>>>c
"hehe,that's will be ok.\n"

readlines():

1
2
3
4
5
>>>>f = open('/root/1.txt')
>>>>d = f.readlines()
>>>>d
#读取所有行包括行结束符,然后把它们作为一个字符串列表返回
["I'll write this message for you\n", "hehe,that's will be ok.\n"]

输入

  • write()方法将字符串写入到文件中。

  • writelines()方法接收一个字符串列表作为参数,将他们写入到文件中,换行符不会自动的加入,因此,需要显式的加入换行符。

write():

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#确保/root/2.txt没有存在,如果存在,则会首先清空,然后写入。
>>>>f = open('/root/2.txt','w')
#没有显式给出换行符
>>>>msg = ['write date','to 2.txt','finish']
>>>>for m in msg:
f.write(m)
>>>>f.close()
cat /root/2.txt
write dateto 2.txtfinish
#会覆盖之前的数据
>>>>f = open('/root/2.txt','w')
#显式给出换行符
>>>>msg = ['write date\n','to 2.txt\n','finish\n']
>>>>for m in msg:
f.write(m)
>>>>f.close()
cat /root/2.txt
write date
to 2.txt
finish

writelines():

1
2
3
4
5
6
7
8
>>>>f = open('/root/3.txt','w')
>>>>msg = ['write date\n','to 3.txt\n','finish\n']
>>>>f.writelines(msg)
>>>>f.close()
cat /root/3.txt
write date
to 3.txt
finish

文件操作模式

r

只有读取功能,打开时指针在文件开头,写报错。

r+

同时具有读和写的功能,打开时指针在文件开头,当进行一个操作后(无论是读还是写)再写入时,指针如果在末尾就是添加;如果在原文本中就是修改。

w

只有写入功能,打开时指针在文件开头,读报错。

w+

同时具有读和写的功能,打开时指针在文件开头,当进行写入操作后指针在末尾,此时读取为空,需f.seek(0)才能读取。

a

只有写入功能,打开时指针在文件末尾,读报错。

a+

同时具有读和写的功能,打开时指针在文件末尾,此时读取为空,需f.seek(0)才能读取。

b

rb、rb+、wb、wb+、ab、ab+在原功能基础上以二进制操作文件。

但愿我的博文能对您有所帮助~