1. 打开文件
使用open()
函数打开一个文件
- 参数:file要打开文件的名字–路径
- 返回值:返回一个对象,这个对象就代表当前打开文件
# 创建一个变量,保存文件的名字
# 如果目标文件和当前文件在同一级,可以直接使用文件名即可;也可以使用绝对路径
filename = "cc.txt"
# 在windows系统使用路径时,可以使用/来代替\
# 或者可以使用//代替/;也可以使用原始字符串
file_name = "can\\cc.txt"
file_name = r"can\cc.txt"
# 打开文件
file_obj = open(filename)
print(file_obj)
2. 读文件
read()
,用来读取文件中的内容,它将内容保存为一个字符串返回
file_name = "cc.txt"
# 调用open()来打开文件
file_obj = open(file_name)
# 读取文件内容
# 当获取了文件对象后,所有的对文件的操作都应该通过对象来进行
c = file_obj.read()
print(c)
print(type(c)) # <class 'str'>
3. 调用close()
关闭文件
- 文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的
file_obj.close()
4.with open …as语句
- 由于文件读写时都有可能产生
IOError
,一旦出错,后面的close()
就不会调用; - 所以Python引入了
with open()
来自动调用close()
方法,无论是否出错
file_name = "cc.txt"
with open(file_name) as file_obj:
#with语句中可以直接使用file_obj来文件操作
#此时这个文件只能在with中使用,一旦with结束文件会自动colse()
print(file_obj.read())
优化代码,结合try...expect
file_name="can.txt"
try:
with open(file_name) as file_obj1:
print(file_obj1.read())
except FileNotFoundError:
print("文件不存在")
5.open()
与 with open()
区别
1)open需要主动调用close(),with不需要;
2)open读取文件时发生异常,没有任何处理,with有很好的处理上下文产生的异常;
- 用with同时操作多个文件
with open("cc.txt") as f1, open("can,txt") as f2:
print(f1.read())
print(f2.read())