如何在Python生成的exe文件中使用sys.argv?运行报错求助
问题分析与修正方案
代码存在的核心错误
open函数模式参数错误:你将数字"2"/"3"作为文件打开模式传入,这是无效参数。创建文件需使用写入模式:"w"(文件不存在则创建,存在则覆盖)或"x"(仅创建新文件,若文件已存在则报错)。- 路径转义问题:Windows路径中的反斜杠
\在Python字符串中是转义字符,直接写"E:\myfile1.txt"会导致\m被解析为无效转义序列,需改为双反斜杠"E:\\myfile1.txt"或原始字符串r"E:\myfile1.txt"。 - 拼写问题(非致命但建议修正):函数参数
numder应为number,返回文本中的crated应为created。
修正后的代码
import sys def test(number): x = number if x == 2: # 用原始字符串避免路径转义,with语句自动管理文件资源 with open(r"E:\myfile1.txt", "w") as f: pass # 无需写入内容时,用pass占位即可 return "myfile1 created" elif x == 3: with open(r"E:\myfile2.txt", "w") as f: pass return "myfile2 created" return "no no no " n = int(sys.argv[1]) print("n is: ", n) x = test(n) print(x)
运行说明
在CMD中运行生成的exe文件时,输入你的程序名.exe 2或你的程序名.exe 3,即可创建对应文件;输入其他数字则返回no no no。
内容的提问来源于stack exchange,提问作者Navrang
相关产品推荐
相关产品推荐

