open 函数
python 内置函数,一般用于本地文件的读写操作,创建一个 file 对象,调用file()方法进行读写。
Tips: file对象需要调用close
# 参数 @params:file: str | bytes | PathLike[str] | PathLike[bytes] | int, #要打开的文件的名称/或文件路径+文件名称 @params:mode: str, #打开文件的模式 @params:buffering: int = ..., #设置缓冲策略 ,0关闭缓冲(二进制),1行缓冲(文本模式),>1 表示缓冲大小,负值/无为默认缓冲机制 @params:encoding: str | None = ..., #打开文件所用的编码,可选utf-8、ascii、gbk等 @params:errors: str | None = ..., #编解码报错的处理模式(文本模式),可选值有strict(报错)、ignore(忽略)、replace(?替代)等 @params:newline: str | None = ..., #换行符设置(文本模式),包括None、"\r"、"\n"、"\r\n" @params:closefd: bool = ..., #控制file参数的传入值类型,False打开的文件描述符 @params:opener: (str, int) -> int | None = ... #设置自定义开启器,即可调用函数传递,使用此参数时closefd=False
mode取值
t 文本模式,默认值
x 新建文件写入,存在则报错
b 二进制
+ 可读可写,即更新文件r 打开只读文件
r+ 打开文件进行读写
w 仅写入,存在则清空内容写入,不存在则创建
w+ 读写,存在则清空内容写入,不存在则创建
a 仅追加,存在则在末尾追加,不存在则创建
a+ 读写,存在则在末尾追加,不存在则创建
file常用方法
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,则是设置一次读多少字节,这是为了减轻读取压力。 file.seek(offset[, whence]):设置文件当前位置 file.tell():返回文件当前位置。 file.truncate([size]):截取文件,截取的字节通过size指定,默认为当前文件位置。 file.write(str):将字符串写入文件,返回的是写入的字符长度。 file.writelines(sequence):向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
示例
容错
读写时都有可能产生IOError, 使用try..finally.. 是为了保证出错时可以正确关闭文件
try: f = open('test.txt', 'r') print(f.read()) finally: if f: f.close()
读文件
if __name__ == "__main__": file = "test.txt" f = open(file, "r") t = f.read() f.close() print(t)
执行结果
追加
if __name__ == "__main__": file = "test.txt" content = """start 1 2 3 test enf """ f = open(file, "a+") f.write(content) f.close()
执行结果:
写文件
if __name__ == "__main__": file = "test.txt" content = """start 1 2 3 test enf """ f = open(file, "r+") f.write(content) f.close()
执行结果:
无文件则创建
if __name__ == "__main__": file = "test.xlsx" content = """start 1 2 3 test enf """ f = open(file, "w+") f.write(content) f.close()
执行结果:
拓展
with open()
用来打开本地文件的,他会在使用完毕后,自动调用close关闭文件
file = "test.xlsx" with open(file, 'r') as f: print(f.read())
执行结果
同理
if __name__ == "__main__": file = "test.txt" content = "test1" ct = "\ntest2" with open(file, 'w+') as f: # 覆盖写入 f.write(content) with open(file, 'a+') as f: # 追加写入 f.write(ct) with open(file, 'r+') as f: # 读 print(f.read())
执行结果
标签:__,文件,Python,写入,file,test,open From: https://www.cnblogs.com/phoenixy/p/17033635.html