文章目录

  • 一、读取文件
    • 1、使用 for 循环读取文件
  • 二、关闭文件
    • 1、close 函数
    • 2、代码示例 – 文件被占用
    • 3、代码示例 – 关闭文件
  • 三、with open 语法自动处理文件关闭
    • 1、with open 语法
    • 2、代码示例 – with open 语法示例

一、读取文件


1、使用 for 循环读取文件

使用 for 循环可以读取文件 , 每次循环将文件的一行数据赋值给临时变量 , 语法格式如下 :

for 临时变量 in 文件对象:# 每次循环都将一行数据赋值给临时变量# 每次对读取的一行数据进行操作

代码示例 :

"""文件操作 代码示例"""file = open("file.txt", "r", encoding="UTF-8")print(type(file))# print("使用for循环读取文件: ")for line in file:print(line)

执行结果 :

D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py<class '_io.TextIOWrapper'>使用for循环读取文件: Hello WorldTomJerryProcess finished with exit code 0

二、关闭文件


1、close 函数

调用 文件对象#close 函数 , 可以关闭文件对象 ;

关闭文件对象 , 可以关闭程序对文件的占用 ;

如果不关闭文件 , 程序一直运行 , 那么该文件就会被程序一直占用 , 其它应用程序或者在本应用中无法正常访问该文件 ;

关闭文件语法 :

文件对象.close()

解除文件占用的两种方式 :

  • 调用 文件对象#close() 函数 , 解除文件占用 ;
  • 杀掉 文件占用的 应用进程 , 也可以解除文件占用 ;

2、代码示例 – 文件被占用

文件占用示例 :

"""文件操作 代码示例"""import timefile = open("file.txt", "r", encoding="UTF-8")print(type(file))# print("使用for循环读取文件: ")for line in file:print(line)# 休眠 1000 秒time.sleep(1000)

在上述代码中 , 文件读取操作执行完毕后 , 休眠 1000 秒 , 保持程序不退出 , 此时该文件会被一直占用 , 如果在文件管理器中尝试删除该文件 , 就会报如下错误 ;

3、代码示例 – 关闭文件

代码示例 :

"""文件操作 代码示例"""import timefile = open("file.txt", "r", encoding="UTF-8")print(type(file))# print("使用for循环读取文件: ")for line in file:print(line)# 关闭文件file.close()

执行结果 :

D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py<class '_io.TextIOWrapper'>使用for循环读取文件: Hello WorldTomJerry123Process finished with exit code 0

三、with open 语法自动处理文件关闭


1、with open 语法

使用 with open 语法 打开文件 , 可以自动进行关闭文件操作 , 避免了由于疏忽大意产生的文件占用的问题 ;

语法说明 :

with open(文件路径, 打开模式) as 文件对象:在该语句块中借助文件对象操作文件操作完毕后不需要手动关闭文件会自动将文件对象关闭

2、代码示例 – with open 语法示例

代码示例 :

"""文件操作 代码示例"""import timewith open("file.txt", "r", encoding="UTF-8") as file:print("使用for循环读取文件: ")# 读取文件for line in file:print(line)# 休眠 1000 秒避免程序退出, 用于测试文件是否被占用time.sleep(1000)

执行结果 :

D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py使用for循环读取文件: Hello WorldTomJerry123

尝试将 file.txt 文件重命名为 file1.txt , 重命名成功 , 说明文件没有被占用 ;