【Python】文件操作 ③ ( 文件操作 | 使用 for 循环读取文件 | 使用 close 函数关闭文件 | with open 语法自动处理文件关闭 )

文章目录

  • 一、读取文件
    • 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))  # <class '_io.TextIOWrapper'>

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 World

Tom

Jerry

Process finished with exit code 0





二、关闭文件



1、close 函数


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

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

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

关闭文件语法 :

文件对象.close()

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

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

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


文件占用示例 :

"""
文件操作 代码示例
"""
import time

file = open("file.txt", "r", encoding="UTF-8")
print(type(file))  # <class '_io.TextIOWrapper'>

print("使用for循环读取文件: ")

for line in file:
    print(line)

# 休眠 1000 秒
time.sleep(1000)

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


3、代码示例 – 关闭文件


代码示例 :

"""
文件操作 代码示例
"""
import time

file = open("file.txt", "r", encoding="UTF-8")
print(type(file))  # <class '_io.TextIOWrapper'>

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 World

Tom

Jerry

123

Process finished with exit code 0





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



1、with open 语法


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

语法说明 :

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

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


代码示例 :

"""
文件操作 代码示例
"""
import time

with 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 World

Tom

Jerry

123

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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年11月10日
下一篇 2023年11月10日

相关推荐