Python FileNotFoundError:[Errno 2] 解决'kaoqin.txt'文件不存在的问题

如果您在运行 Python 代码时遇到 'Traceback (most recent call last): File '2.py', line 5, in with open(file='kaoqin.txt', mode='r', encoding='utf-8') as f: FileNotFoundError: [Errno 2] No such file or directory: 'kaoqin.txt'' 错误,这意味着您的代码无法找到名为 'kaoqin.txt' 的文件。

为了解决这个问题,您可以使用 try-except 语句来捕获 FileNotFoundError 异常,并在文件不存在时进行处理。

以下是更新后的代码:

zd_1 = {}

# 从kaoqin.txt中读取存储的内容作为考勤统计数据的基数
try:
    with open(file='kaoqin.txt', mode='r', encoding='utf-8') as f:
        for line in f.readlines():
            xh, cs = line.strip().split(':')
            zd_1[xh] = int(cs)
except FileNotFoundError:
    print('找不到kaoqin.txt文件,将创建一个空的考勤统计数据。')

while True:
    yhsr = input('请输入七位学号(exit,quit):')
    if yhsr == 'quit' or yhsr == 'exit':
        print('*' * 20 + '结束' + '*' * 20)
        for a, b in zd_1.items():
            print(a, b)
        break
    if yhsr not in zd_1:
        yhsr_2 = input('确定要登入吗(yes/no): ')
        if yhsr_2 == 'yes':
            zd_1[yhsr] = 1
        else:
            print('不录入无需操作')
    else:
        zd_1[yhsr] = zd_1[yhsr] + 1
        print('已在考勤表中')

# 保存现有统计数据到kaoqin.txt
with open(file='kaoqin.txt', mode='w', encoding='utf-8') as f:
    for key, value in zd_1.items():
        f.write('{}:{}
'.format(key, value))

代码说明:

  1. try-except 语句:
    • try 块包含尝试打开 'kaoqin.txt' 文件并读取数据的代码。
    • except FileNotFoundError: 块将在 try 块中发生 FileNotFoundError 时执行,例如文件不存在时。
  2. 文件不存在时的处理:
    • 如果文件不存在,代码将打印一条消息 '找不到kaoqin.txt文件,将创建一个空的考勤统计数据。'。
    • 然后,代码将继续执行,并使用一个空的 zd_1 字典来存储考勤数据。

运行代码之前:

  • 确保在运行代码之前已经创建好了 'kaoqin.txt' 文件(如果需要)。
  • 文件中的数据格式应为 '学号:次数',例如 '2021001:3'。

通过使用 try-except 语句,您的代码将更加健壮,并且能够更好地处理文件不存在的情况。

Python FileNotFoundError:[Errno 2] 解决'kaoqin.txt'文件不存在的问题

原文地址: https://www.cveoy.top/t/topic/dbXA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录