标签: command-line-arguments

解析配置文件,环境和命令行参数,以获取单个选项集合

Python的标准库包含用于配置文件解析(configparser),环境变量读取(os.environ)和命令行参数解析(argparse)的模块.我想写一个程序来完成所有这些,还有:

  • 有一系列选项值:

    • 默认选项值,被覆盖
    • 配置文件选项,由...覆盖
    • 环境变量,被覆盖
    • 命令行选项.
  • 允许在命令行指定的一个或多个配置文件位置,例如--config-file foo.conf,并读取(通常配置文件的替代或补充).这仍然必须遵守上述级联.

  • 允许在一个位置使用选项定义来确定配置文件和命令行的解析行为.

  • 将解析的选项统一到一个选项值集合中,以便程序的其余部分可以访问,而无需关心它们来自何处.

我需要的一切显然都在Python标准库中,但它们并不能顺利地协同工作.

如何以最小的Python标准库偏差实现这一目标?

python environment-variables configuration-files command-line-arguments

104
推荐指数
7
解决办法
2万
查看次数

如何加载程序读取stdin并在gdb中获取参数?

我有一个程序从stdin获取输入,并从命令行获取一些参数.它看起来像这样:

cat input.txt > myprogram -path "/home/user/work"
Run Code Online (Sandbox Code Playgroud)

我尝试使用gcs在emacs中调试代码,通过Mx gdb,我尝试使用以下命令加载程序:

gdb cat input.txt > myprogram -path "/home/user/work"
Run Code Online (Sandbox Code Playgroud)

但是,gdb不喜欢它.

问题来自这里.不幸的是我不理解解决方案,并且不确定除了使用该-g选项进行编译并运行命令Mx gdb 之外还要做什么.

emacs redirect gdb command-line-arguments

95
推荐指数
4
解决办法
6万
查看次数

如何在Xcode 4中指定命令行参数?

我刚刚升级到Xcode 4并且还没有找到很多关于它的文档,因为它只是黄金大师.我需要指定一个命令行参数来测试我的应用程序.

Xcode 3.2建议并没有帮助,因为一切都被移动了.

xcode command-line-arguments

93
推荐指数
2
解决办法
8万
查看次数

什么是Robocopy的"可重启"选项?

robocopy /Z ="以可重启模式复制文件".

这个选项有什么作用?我发现的所有文档都引用了机载手册.什么是"可重启"模式,为什么有人会使用它,它与"备份模式"(/B)有何不同?

robocopy command-line-arguments

93
推荐指数
1
解决办法
10万
查看次数

如何使用Bash访问函数内的命令行参数?

我正在尝试在bash中编写一个函数来访问脚本命令行参数,但是它们被替换为函数的位置参数.如果函数没有显式传递,是否有任何方法可以访问命令行参数?

# Demo function
function stuff {
  echo $0 $*
}

# Echo's the name of the script, but no command line arguments
stuff

# Echo's everything I want, but trying to avoid
stuff $*
Run Code Online (Sandbox Code Playgroud)

bash argv command-line-arguments

89
推荐指数
5
解决办法
13万
查看次数

如果未指定,则argparse存储为false

parser.add_argument('-auto', action='store_true')
Run Code Online (Sandbox Code Playgroud)

如果-auto未指定,我如何存储假?我可以隐约记得这样,如果没有指定,它会存储None

python command-line-arguments argparse

86
推荐指数
3
解决办法
5万
查看次数

mkdir的"-p"选项

所以这似乎不是一个非常复杂的问题,但我找不到答案.我对-p选项在Unix中的作用感到困惑.我在创建子目录时使用它进行实验室分配,然后在该子目录中使用另一个子目录.它看起来像这样:

mkdir -p cmps012m/lab1
Run Code Online (Sandbox Code Playgroud)

这是在具有正常权限的私人目录中(rlidwka).提前致谢!哦,有人会介意对"rlidwka"的含义做一些解释吗?我不是Unix的总菜鸟,但我并不熟悉这意味着什么.希望这个问题不是太模糊.

unix command-line directory-structure command-line-arguments

86
推荐指数
3
解决办法
10万
查看次数

Windows不会将命令行参数传递给从shell执行的Python程序

如果我尝试直接将它们作为可执行命令从Windows命令shell执行,那么我无法将命令行参数传递给Python程序.例如,如果我有这个程序(test.py):

import sys
print "Args: %r" % sys.argv[1:]
Run Code Online (Sandbox Code Playgroud)

并执行:

>test foo
Args: []
Run Code Online (Sandbox Code Playgroud)

相比于:

>python test.py foo
Args: ['foo']
Run Code Online (Sandbox Code Playgroud)

我的配置有:

PATH=...;C:\python25;...
PATHEXT=...;.PY;....

>assoc .py
.py=Python.File

>ftype | grep Python
Python.CompiledFile="C:\Python25\python.exe" "%1" %*
Python.File="C:\Python25\python.exe" "%1" %*
Python.NoConFile="C:\Python25\pythonw.exe" "%1" %*
Run Code Online (Sandbox Code Playgroud)

python windows registry file-association command-line-arguments

83
推荐指数
5
解决办法
3万
查看次数

Java:检查命令行参数是否为null

我希望对我的命令行参数进行一些错误检查

public static void main(String[] args)
{
    if(args[0] == null)
    {
        System.out.println("Proper Usage is: java program filename");
        System.exit(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这会返回一个数组超出范围的异常,这是有道理的.我只是在寻找正确的用法.

java command-line command-line-arguments

83
推荐指数
3
解决办法
15万
查看次数

解析命令行参数?

嗨,我正在尝试编写一个程序,可以逐行,逐字或逐字符地比较两个文件.它必须能够读入命令行选项"-l -w -i或 - "...如果选项是-l,它会逐行比较文件.如果选项是-w,它会逐字比较文件.如果选项是 - 它会自动假定下一个arg是第一个文件名.如果选项是-i,则以不区分大小写的方式对它们进行比较.否则,它默认按字符比较文件

只要-w和-l没有同时输入且没有多于或少于2个文件,输入选项的时间并不重要.

我甚至不知道从哪里开始解析命令行参数.请帮忙 :(

所以这就是我想出的所有代码.我还没有错误检查它,但我想知道我是否以过于复杂的方式写东西?

/*
 * Functions to compare files.
 */
int compare_line();
int compare_word();
int compare_char();
int case_insens();

/*
 * Program to compare the information in two files and print message saying 
 * whether or not this was successful.
 */
int main(int argc, char* argv[])
{
/*Loop counter*/
  size_t i = 0;

  /*Variables for functions*/
  int caseIns = 0;
  int line = 0;
  int word = 0;

  /*File pointers*/
  FILE *fp1, *fp2; …
Run Code Online (Sandbox Code Playgroud)

c command-line-arguments

83
推荐指数
6
解决办法
13万
查看次数