前言
Python中的open函数用于打开一个文件,创建一个file对象,之后相关的方法才可以调用它进行读或者写。
0、Open介绍
在Python中,open()函数是用于打开文件的内置函数,可以读取或写入文件的内容。它的一般语法是:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
一、参数说明
# file: 要打开的文件名或文件路径。 # mode: 打开文件的模式。默认是 'r'(只读模式),也可以是 'w'(写入模式)、'a'(追加模式)、'x'(独占创建模式)等。具体的模式说明如下: # 'w':打开一个文件只用于写入,如果该文件已存在则打开文件,并且从头开始编辑,即原有内容会被删除。如果该文件不存在,则创建新文件。 # 'r':以只读的方式打开文件。文件的指针将会放在文件的开头。 # 'b':二进制模式 # '+':打开一个文件进行更新,可读可写 # 'a':打开一个文件用于追加,如果该文件已经存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件进行写入。 # 'x':独占创建模式,创建新文件并以写入模式打开,如果文件已存在则会引发 FileExistsError。 # 't':文本模式,以文本方式读取或写入文件。 # 注意:还有两两合并的一些模式,是两种单一模式的作用相加。 # 对象方法: # read(size):返回整个文件, 如果指定size则返回size个字符。 # readline():返回一行 # readlines(): 返回全部行的一个列表 # write(): 写入字符 # close(): 关闭文件 f = open('tes.txt', 'r') f.read() # 使用之后一定要记得关闭,因为会占用系统资源 f.close()
二、使用with语句
使用open函数直接打开文件,如果忘记使用close函数的话,会占用系统资源,为了解决这个问题,我们使用with语句来自动帮助我们调用close()方法。
官方一点说:
- 使用with语句的主要好处是可以自动管理文件的打开和关闭。当with语句结束时,文件会自动关闭,这样可以避免忘记手动关闭文件而导致的资源泄漏。
- 另外,使用with语句还可以让代码更加简洁明了。在with语句块中,文件对象的作用域仅限于该语句块中,因此不必担心文件对象在其他部分被意外修改或调用。这样可以更好地控制文件对象的作用范围,提高代码的可读性和可维护性。
- 除了文件操作外,with语句还可以用于其他需要资源管理的场景,如数据库连接、网络连接等。在这些场景中,使用with语句可以保证资源的正确打开和关闭,避免资源泄漏和错误。
with open(文件名, 模式) as 文件对象: 文件对象.方法() # 本人比较常用的写法是通过迭代器访问数据然后加入到一个列表中去 # 举例 # 构建空的列表 word_dic = [] # 通过迭代器访问: for word in f # 用列表生成式直接将数据加入到一个空的列表中去 # 这里写的文件路径是相对路径,也可以写绝对路径,一般写绝对路径,不容易错误。 with open('./vocab.txt', 'r') as f: word_dic = set([word.rstrip() for word in f])
三、拓展延伸(其他文件操作的方法)
在Python中,open()函数是用于打开文件的内置函数,是最常用的文件操作方法之一。除了open()函数外,还可以使用一些其他方法来进行文件操作,具体如下:
- 使用os模块的文件操作方法,如os.read()和os.write()等,可以用于对文件进行读写操作。
- 使用shutil模块的文件操作方法,如shutil.copy()和shutil.move()等,可以用于复制、移动和删除文件等操作。
- 使用pickle模块的dump()和load()方法,可以将Python对象序列化为二进制格式并保存到文件中,或从文件中读取二进制格式并反序列化为Python对象。
- 使用csv模块的reader()和writer()方法,可以读写CSV文件格式。
- 使用pandas库的read_csv()和to_csv()方法,可以读写CSV文件,并将其转换为DataFrame格式进行数据处理。
需要注意的是,这些方法的使用场景和适用范围不同,要根据具体的需求选择合适的方法。如果只需要进行简单的文件读写操作,建议使用open()函数。如果需要进行复杂的数据处理操作,可以考虑使用pandas库等高级工具。
参考文章:
Python使用with open() as读写文件【必知必会】.
总结
想起来已经好几天没写博客了,每天好像也没做什么工作,但是就是感觉很累,离谱!