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

Python使用os.system时如何通过命令行参数动态传入数据集名称

你可以通过读取sys.argv获取命令行传入的参数,实现自定义数据集名称的需求,修改后的代码如下:

import os
import sys

# 参数校验:未传入数据集名时打印使用提示并退出
if len(sys.argv) < 2:
    print("使用方式:python3 prog_name.py 数据集名称")
    sys.exit(1)

# 读取命令行传入的数据集名
dataset_name = sys.argv[1]
# 将C4.5程序路径提取为公共变量,后续修改路径更便捷
c45_exec_path = "/home/mine/Desktop/C4.5/"

# 拼接执行命令
os.system(f"{c45_exec_path}c4.5 -u -f {dataset_name}")
os.system(f"{c45_exec_path}c4.5rules -u -f {dataset_name} > Temp")

f = open('Temp')

改动说明

  • 执行python3 prog_name.py my_data_set_name时,sys.argv列表会存储所有命令行参数,其中sys.argv[0]为脚本本身名称,sys.argv[1]即为传入的自定义数据集名
  • 新增参数校验逻辑,避免未传参数时程序无意义报错
  • 公共路径抽离为变量,降低后续维护成本
  • 使用f-string实现字符串动态拼接,自动替换命令中的数据集名

如果你的Python版本低于3.6,不支持f-string语法,可以将命令拼接部分替换为format写法:

os.system("{}c4.5 -u -f {}".format(c45_exec_path, dataset_name))
os.system("{}c4.5rules -u -f {} > Temp".format(c45_exec_path, dataset_name))

如果你的数据集名称或路径包含空格,可以给拼接的参数部分加双引号转义,避免命令执行出错:

os.system(f"{c45_exec_path}c4.5 -u -f \"{dataset_name}\"")
os.system(f"{c45_exec_path}c4.5rules -u -f \"{dataset_name}\" > Temp")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:06:05