You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python IDLE无法打开读取文件:FileNotFoundError问题解决

问题修复方案

错误原因分析

  1. 文件路径不匹配:Python脚本运行时的默认工作目录并非桌面,即便文件和代码放在同一位置,直接输入文件名也会因路径找不到文件。
  2. 语法错误:range()函数必须传入参数,无参数调用会触发TypeError。
  3. 文件资源未妥善管理:直接用open()打开文件后未手动关闭,可能造成资源泄漏。

修复方案与代码实现

方案1:输入完整文件路径

让用户直接输入文件的完整路径(比如Windows下的C:\Users\你的用户名\Desktop\alldata.numbers,macOS下的/Users/你的用户名/Desktop/alldata.numbers),确保无论工作目录在哪都能定位到文件:

def main():
    inName = input("请输入文件的完整路径:")
    # 使用with语句自动管理文件,无需手动关闭
    with open(inName, "r") as inFile:
        # 逐行读取并打印所有内容
        for line in inFile:
            print(line, end="")
    return

main()

方案2:自动拼接桌面路径(更便捷)

借助os模块获取系统桌面路径,自动和用户输入的文件名拼接,用户只需输入文件名即可:

import os

def main():
    # 获取当前用户的桌面路径,跨系统通用
    desktop_path = os.path.expanduser("~/Desktop")
    inName = input("请输入桌面上的文件名:")
    # 自动拼接合法路径,适配不同系统的路径分隔符
    full_path = os.path.join(desktop_path, inName)
    
    with open(full_path, "r") as inFile:
        for line in inFile:
            print(line, end="")
    return

main()

方案3:切换工作目录到桌面

先将Python的工作目录切换到桌面,之后直接用文件名即可打开文件:

import os

def main():
    desktop_path = os.path.expanduser("~/Desktop")
    # 切换工作目录到桌面
    os.chdir(desktop_path)
    
    inName = input("请输入文件名:")
    with open(inName, "r") as inFile:
        for line in inFile:
            print(line, end="")
    return

main()

关键优化说明

  • with语句:替代手动调用close(),代码块结束后自动关闭文件,避免资源泄漏。
  • 逐行读取优化:直接for line in inFile比readline()循环更简洁高效,无需处理range()的参数问题。
  • 跨系统路径处理:os.path.join()自动适配不同系统的路径分隔符,避免手动拼接路径出错。

内容的提问来源于stack exchange,提问作者Noah DeFrain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:05:25