首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python脚本表示文件名、目录名或卷标签语法不正确。

Python脚本表示文件名、目录名或卷标签语法不正确。
EN

Stack Overflow用户
提问于 2021-08-31 08:29:46
回答 2查看 403关注 0票数 0

嗨,我正在尝试制作一个python脚本来实现一些自动化,从一些工具生成一个文件(不能给出它们的名称,但是这些命令会给您一个想法),同时我制作了一个脚本,它使用os.system将命令传递给cmd/终端(在mycase中是cmd),如下所示

代码语言:javascript
复制
os.system('"' + dc_dir + '" --scan "' + in_dir + '" --out "' + out_dir + '\\'+ Project_name + '.csv' + '" --format CSV --enableExperimental')

and it returns "The filename, directory name, or volume label syntax is incorrect."

but when i print the exact same line and run it manually it works

print('"' + dc_dir + '" --scan "' + in_dir + '" --out "' + out_dir + '\\'+ Project_name + '.csv' + '" --format CSV --enableExperimental')

这是打印出来的命令

代码语言:javascript
复制
"C:\SBOM\dependency-check-6.2.2\bin\dependency-check.bat" --scan "C:\FinalScript\Source Codes\Sireous" --out "C:\SBOM\SiriusProgrammer_2_0.csv" --format CSV --enableExperimental

如果可能的话请帮我一把。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-31 09:07:40

让我们尝试将问题本地化。要做到这一点,我们需要稍微组织一下您的代码:

  1. ,这不是我们现在连接字符串的方式。就是这样:

'C:\SBOM\dependency-check-6.2.2\bin\dependency-check.bat‘=’C:\FinalScript\源代码\‘out_dir =’SBOM‘Project_name = 'SiriusProgrammer_2_0’f'{ dc_dir } -扫描{ in_dir }{Project_name} -out {out_dir}{Project_name}.csv -格式CSV --enableExperimental'

  1. 使用专用于特定任务的库更好。路径库将帮助您避免碰撞。

从路径库导入路径project_name = 'SiriusProgrammer_2_0‘project_dir = Path('C','SBOM') dependency_check_bat = 'bin',’依赖-校验.bin‘) source_code_dir = Path('C','FinalScript',’源代码‘,F‘{ {project_dir.joinpath(project_name).as_posix()}.csv ()}--扫描{source_code_dir.as_posix()} --out project_name--格式CSV --enableExperimental'

关于

  1. 的主要问题,我建议使用子进程,如果您想将变量传递给脚本,这很方便:

导入子进程process_run =process_run‘--扫描’,source_code_dir.as_posix(),‘-out’,f'{project_dir.joinpath(project_name).as_posix()}.csv',‘-格式CSV',’- terminal_output‘,stdout=subprocess.PIPE) terminal_output= process_run.communicate()

让我们这样做,看看哪个航站楼会回到我们身边。

票数 0
EN

Stack Overflow用户

发布于 2021-08-31 09:03:07

首先,借助f-string,使语法变得清晰。

代码语言:javascript
复制
os.system(f'{dc_dir} --scan {in_dir} --out {out_dir}\{Project_name}.csv --format CSV --enableExperimental')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68995309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档