-
python中关于文件的打开一般使用open
例子:
open("日记","r") 打开名字为日记的文件,后边的”r“表示以只读的方式打开
关于更多的打开方式:
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 -
文件的其他操作:
f.tell()) #查看指针的位置
f.seek() #定位指针,后边给参数可以定位到指定的位置
f.read() #文件的读取
for i in range(5):
print(f.readline()) #读取前五行,这是文件的循环
print(f.readlines()) #把文件变成列表
for i in f.readlines():
print(i.strip()) #strip是把空格和回车全都去掉
读取文件前九行的两种方法
f = open("日记","r")
count = 0
for line in f:
if count == 9:
print('----我是分割线----------')
count += 1
continue
print(line)
count += 1
方法二:
for index, line in enumerate(f.readlines()): #这种方法前边介绍过
if index == 9:
print('----我是分割线----------')
continue
print(line.strip())
for i in range(5):
print(f.readline())
print(f.tell()) #查看指针的位置
print(f.read()) #当你同时次运行时候你会发现只打印日记一遍,是因为第一遍打印的时候指针已经读到最后,当你第二次打印的时候,指针从最后开始读取,也就是打印空的内容
f.seek(13) #让指针回到指定的位置,不给参数默认是0
print(f.readlines()) #打印这个会报错,不知道为什么,现在知道了,大概是因为打开的文本是中文的所以指针的位置不能定位到13,一个中文字符在这里相当于三个指针的位置,即三个字符
readline与readlines的区别,前者打印一行后者打印指针开始位置至最后的所有,而且后者是把东西打印成列表
print(f.encoding) #打印文件的编码
print(f.fileno()) #返回句柄在文件中的编号
print(f.isatty()) #是否是一个终端设备,比如打印机
print(f.name) #打印文件的名字
print(f.seekable()) #先查看文件的指针是否能够移动,返回布尔值
print(f.writable() ) #判断文件是否可写
f = open("日记",'w')
f.close() #关闭文件
print(a.truncate(10)) #什么都不写文件会被清空,这是一个截断,可以指定位置截断,中间截断可以保留前边的片段
file.flush()刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
file.fileno()返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
file.next()返回文件下一行。
file.read([size])从文件读取指定的字节数,如果未给定或为负则读取所有。
file.readline([size])读取整行,包括 "\n" 字符。
file.readlines([sizehint])读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
file.writelines(sequence)向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
网友评论