【问题标题】:File content as PyCharm run configuration parameters文件内容作为 PyCharm 运行配置参数
【发布时间】:2022-04-18 14:07:45
【问题描述】:

我正在尝试启动可能的主要 Python 脚本,其中一些参数列在 txt 文件 (config.txt) 中。

因为参数几乎每次启动都会改变,我不想每次都输入它们。它们不是字面上的“配置”,但我没有找到正确的文件名(这是另一回事)。

见下文:

-param1   1
-param2   2
-verbose

使用 PyCharm 的运行配置

我想最终做一些类似的事情: python C:\somewhere\main.py -param1 1 -param2 2 -verbose

而不是当前行为:python C:\somewhere\main.py config.txt

顺便说一句,程序错过了(显然)。

#32951846


我已经在 “启动前:激活工具”部分中尝试了 windows for 循环

$: for /f "delims=" %x in (config.txt) do set ARGS=%ARGS%%x
$: python  C:\somewhere\main.py %ARGS%

但它只保留config.txt 的最后一行在ARGS 内。

#51948712


我还尝试将文件的内容通过管道传输到我的 python 主程序中,例如:

python C:\somewhere\main.py < config.txt

但它也不起作用。

#syntax-redirection

【问题讨论】:

  • 如果通过管道输入,则需要读取标准输入。如果您提供文件,则需要打开并读取该文件。这两个选项都不会扩展到 cli args,我不确定这是否可行,那么您在解析文件时遇到了什么问题?
  • 我不想将文件作为参数并对其进行解析,也不想 pip 和读取标准输入;我只是尝试了不同的解决方案(不令人满意)。这个项目真的很大,我只是在这里简化了我的问题,让它变得简单。欢迎任何将文件内容作为参数的提示!
  • 如果有的话,我认为 for 循环似乎是最接近的,但你会向脚本传递一个参数,而不是单个参数
  • 它只设置了最后一行,因为你没有在构建 ARGS 时累积它,你只是将它设置为 x 的值
  • 我刚刚纠正了这个错过的副本/过去。我做了for ... do ARGS=%ARGS%%x,它只占用了最后一个。请注意,for 循环应该填充变量,毕竟,我将它用于我的脚本启动。但是for循环的结果只是config.txt文件的最后一行。

标签: python windows pycharm run-configuration


【解决方案1】:

我说得对吗,您希望看到类似 https://youtrack.jetbrains.com/issue/PY-5543 的内容?

考虑使用以下插件:https://plugins.jetbrains.com/plugin/7861-envfile/

【讨论】:

  • 我不想使用环境变量。只是放置一系列参数,例如main.py -arg1 a -arg2 b。其中“-arg1 a -arg2 b”是文件中的字符串。
【解决方案2】:

这并不完全符合您的要求,但您可以按照 this 指南将运行配置存储在文件中,然后修改文件、共享或添加到 git。

关键步骤是在 PyCharm 的“运行/调试配置”窗口中勾选“存储为项目文件”框。这将在项目文件夹的“.idea”文件夹中创建新的子文件夹“runConfigurations”。

该文件夹将包含一个带有该行的 xml 文件

<option name="PARAMETERS" value="&quot;arg1&quot; &quot;arg2&quot;" />

其中“arg1”和“arg2”是传递给脚本的参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2019-02-10
    • 2017-07-12
    • 2016-02-27
    • 2020-07-09
    • 2018-05-17
    • 1970-01-01
    相关资源
    最近更新 更多