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

Python3无法仅通过文件名打开文件、需使用完整路径的问题咨询

问题原因

Python的open()函数传入相对路径时,会默认从脚本运行时的当前工作目录下查找目标文件,而非从脚本文件本身的存放目录查找。你遇到报错的核心原因就是:你运行脚本时的工作目录,和test.txt文件的存放目录不一致。

比如从报错日志可以看到你的脚本存放在/home/kernel/Documents/python/路径下,如果你是在/home/kernel/目录下执行python Documents/python/file upper.py命令运行脚本,那么Python的当前工作目录就是/home/kernel/,只会在这个路径下找test.txt,自然会报找不到文件的错误。

另外注意你贴的示例代码和实际运行代码有变量名不一致的问题:你示例代码里把输入的文件名赋值给了file变量,但报错日志里调用open()时传入的是fname变量,这也可能是报错的诱因之一,请先确认实际运行的代码里变量名统一。

解决方法

  • 方案1:将目标文件放到脚本运行的工作目录下
    你可以在脚本开头加两行代码打印当前工作目录,确认后把test.txt放到对应路径即可:
    import os
    print(os.getcwd())
    
  • 方案2:自动拼接脚本所在目录的绝对路径
    如果希望不管在哪个目录下运行脚本,都能正常读取和脚本同目录下的文件,可以手动拼接文件的绝对路径:
    import os
    # 获取当前脚本所在目录的绝对路径
    script_path = os.path.dirname(os.path.abspath(__file__))
    file_name = input("enter your file name: ")
    # 拼接得到目标文件的完整路径
    full_path = os.path.join(script_path, file_name)
    fhand = open(full_path)
    
  • 方案3:直接输入文件的完整绝对路径,不受工作目录限制。

内容的提问来源于stack exchange,提问作者meysam chaghamirza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:36:05