五、文件操作

读写文件

打开文件的模式

  • r,只读模式(默认)。

  • w,只写模式。【不可读;不存在则创建;存在则删除内容;因为会清空原有文件的内容,一定要慎用】

  • a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
    注意最后要记得关闭文件:f.close()
  • b,二进制文件
  1. 注意最后要记得关闭文件:f.close()
  2. python只能将字符串写入到文本文件。要将数值数据存储到文本本件中,必须先试用函数str()将其转换为字符串格式。

格式

f = open(filename)
f.read()
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()

with codecs.open("1.log", "r", encoding=ENCODING) as f:
print(f.read())

猜你喜欢

转载自blog.csdn.net/weixin_39934221/article/details/79943360