写Python时间也不短了,但对于几个常用的文件操作方法的区别老是记不住,用的时候要再查一查,故记录一下。
输出
-
read()方法用于直接读取字节到字符串中,可以接参数给定最多读取的字节数,如果没有给定,则文件读取到末尾。
-
readline()方法读取打开文件的一行(读取下个行结束符之前的所有字节),然后整行,包括行结束符,作为字符串返回。
-
readlines()方法读取所有行然后把它们作为一个字符串列表返回。
read()
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()
>>>> 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()
>>>>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()
#确保/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()
>>>>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+在原功能基础上以二进制操作文件。
评论