读写文件
打开文件的模式
- r,只读模式(默认)。
- w,只写模式。【不可读;不存在则创建;存在则删除内容;因为会清空原有文件的内容,一定要慎用】
- a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
- b,二进制文件
注:注意最后要记得关闭文件:f.close()
注:python只能将字符串写入到文本文件。要将数值数据存储到文本本件中,必须先试用函数str()将其转换为字符串格式。
格式
f = open(filename)
m = f.read()
print (m)
f.close
实例
需求 追加输入数字到文件里面
if __name__ == '__main__': ##主函数
filename = input("please input the name of file:") ##文件名
f = open(filename, "w") ##打开
while 1: ##循环
context = input("please input context('EOF' will exit ): ") ##输入内容
if context == "EOF": ## 判断
f.close() ## 关闭
break
else:
f.write(context) 写入filename文件中
f.write("\n")
fr = open(filename)
readcontect = fr.read()
print("################################")
print(readcontect)
print("################################")
文件方法
方法描述
方法 | 描述 |
---|---|
file.close() | 关闭文件。关闭后文件不能再进行读写操作。 |
file.flush() | 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。 |
file.fileno() | 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。 |
file.isatty() | 如果文件连接到一个终端设备返回 True,否则返回 False。 |
file.next() | |
file.read([size]) | 从文件读取指定的字节数,如果未给定或为负则读取所有。 |
file.readline([size]) | 读取整行,包括 “\n” 字符。 |
file.readlines([sizeint]) | 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。 |
file.seek(offset[, whence]) | 设置文件当前位置 |
file.tell() | 返回文件当前位置。 |
file.truncate([size]) | 从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后 V 后面的所有字符被删除,其中 Widnows 系统下的换行代表2个字符大小。 |
file.write(str) | 将字符串写入文件,没有返回值。 |
file.writelines(sequence) | 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 |
实例
ENCODING = "utf-8"
f = open("1.log", encoding=ENCODING)
print(f.name) | #显示文件名
print(f.readline(size)) | #显示第size行
print(f.readlines()) #以list的形式显示
----------
1.log
FSAD
['SA\n', 'DSA\n', 'D\n', 'SA\n', 'D\n', 'SA\n', 'D\n', 'SA\n', 'D\n', 'SA\n', 'D\n', 'SA\n', 'D\n', 'SA\n', 'D\n', 'SAE\n']
取消closed()
import codecs
ENCODING = "utf-8"
with codecs.open("1.log", "r", encoding=ENCODING) as f:
print(f.read())