Visual Studio 2022中Ctrl+F5运行Python代码异常求助
问题:VS2022中Python代码F5调试正常,但Ctrl+F5运行异常
我使用Visual Studio 2022 17.5.5版本,编写了如下Python代码:
with open('routers.txt', 'r') as routers_txt: router_line_list = routers_txt.read().splitlines() print(router_line_list) for router_line in router_line_list: print(router_line) for router_line in router_line_list: print('a')
routers.txt文件内容如下:
Name,802.11 Specification,Memory,Price NetEdge X12,Wi-Fi 6,64 MiB,199.99 StreamLink AC10,802.11ac,512 KiB,$89.99 AirTech XL,ax,1 MiB,54.99 LinkWave N2,802.11n,2 GiB,149.99 WiZone 5000,Wi-Fi 5,16 MiB,79.99 UltraWave AC8,802.11ac,2048 KiB,119.99 FastLink AC4,ac,4 MiB,179.99 WaveSwift X20,802.11ax,32 MiB,69.99 MaxNet 8000,WiFi 6,8 MiB,249.99 SwiftWave AX20,ax,2 MiB,39.99 AirConnect X16,Wi-Fi 6,128 MiB,299.99 NetStream AX1,802.11ax,1024 MiB,129.99 SwiftLink 400,ax,512 KiB,79.99 TechPro N6,802.11n,4 GiB,199.99 NetWave 3000,WiFi5,32 MiB,109.99 AirLink AC2,802.11ac,4096 MiB,$149.99 MaxWave AC12,ac,16 MiB,229.99 StreamX AX5,802.11ax,8 MiB,99.99 SwiftNet X10,Wi-Fi 6,4 GiB,349.99 NetLink AX3,ax,48 MiB,59.99
使用F5调试时一切正常,但按下Ctrl+F5运行时出现异常。我尝试升级到Visual Studio 2022 17.6.2版本并恢复软件,之后又回滚到17.5.5版本,问题仍未解决,请问这是什么原因?
原因分析与解决办法
这种情况大概率是工作目录不一致导致的:
- F5调试模式下,VS默认会把项目根目录作为Python脚本的工作目录,此时脚本能正常找到同目录下的
routers.txt - Ctrl+F5直接运行时,VS可能会将脚本所在子目录或系统默认路径作为工作目录,脚本找不到文件就会抛出
FileNotFoundError
验证步骤
在代码开头添加以下代码,分别用F5和Ctrl+F5运行,对比输出的工作目录:
import os print("当前工作目录:", os.getcwd())
解决办法
- 统一工作目录:右键项目 → 属性 → 调试选项卡,将「工作目录」设置为项目根目录(和调试时的路径一致)
- 使用绝对路径:获取脚本所在目录的绝对路径,再拼接文件名,示例:
import os script_dir = os.path.dirname(os.path.abspath(__file__)) file_path = os.path.join(script_dir, 'routers.txt') with open(file_path, 'r') as routers_txt: router_line_list = routers_txt.read().splitlines() - 调整文件位置:根据Ctrl+F5运行时打印的工作目录,将
routers.txt复制到该路径下
内容的提问来源于stack exchange,提问作者Tristan
相关产品推荐
相关产品推荐

