Python的标准库包含用于配置文件解析(configparser),环境变量读取(os.environ)和命令行参数解析(argparse)的模块.我想写一个程序来完成所有这些,还有:
有一系列选项值:
允许在命令行上指定的一个或多个配置文件位置,例如--config-file foo.conf,并读取(通常配置文件的替代或补充).这仍然必须遵守上述级联.
允许在一个位置使用选项定义来确定配置文件和命令行的解析行为.
将解析的选项统一到一个选项值集合中,以便程序的其余部分可以访问,而无需关心它们来自何处.
我需要的一切显然都在Python标准库中,但它们并不能顺利地协同工作.
如何以最小的Python标准库偏差实现这一目标?
python environment-variables configuration-files command-line-arguments
我有一个程序从stdin获取输入,并从命令行获取一些参数.它看起来像这样:
Run Code Online (Sandbox Code Playgroud)cat input.txt > myprogram -path "/home/user/work"我尝试使用gcs在emacs中调试代码,通过Mx gdb,我尝试使用以下命令加载程序:
Run Code Online (Sandbox Code Playgroud)gdb cat input.txt > myprogram -path "/home/user/work"但是,gdb不喜欢它.
问题来自这里.不幸的是我不理解解决方案,并且不确定除了使用该-g选项进行编译并运行命令Mx gdb 之外还要做什么.
我刚刚升级到Xcode 4并且还没有找到很多关于它的文档,因为它只是黄金大师.我需要指定一个命令行参数来测试我的应用程序.
Xcode 3.2建议并没有帮助,因为一切都被移动了.
robocopy /Z ="以可重启模式复制文件".
这个选项有什么作用?我发现的所有文档都引用了机载手册.什么是"可重启"模式,为什么有人会使用它,它与"备份模式"(/B)有何不同?
我正在尝试在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) parser.add_argument('-auto', action='store_true')
Run Code Online (Sandbox Code Playgroud)
如果-auto未指定,我如何存储假?我可以隐约记得这样,如果没有指定,它会存储None
所以这似乎不是一个非常复杂的问题,但我找不到答案.我对-p选项在Unix中的作用感到困惑.我在创建子目录时使用它进行实验室分配,然后在该子目录中使用另一个子目录.它看起来像这样:
mkdir -p cmps012m/lab1
Run Code Online (Sandbox Code Playgroud)
这是在具有正常权限的私人目录中(rlidwka).提前致谢!哦,有人会介意对"rlidwka"的含义做一些解释吗?我不是Unix的总菜鸟,但我并不熟悉这意味着什么.希望这个问题不是太模糊.
unix command-line directory-structure command-line-arguments
如果我尝试直接将它们作为可执行命令从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
我希望对我的命令行参数进行一些错误检查
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)
但是,这会返回一个数组超出范围的异常,这是有道理的.我只是在寻找正确的用法.
嗨,我正在尝试编写一个程序,可以逐行,逐字或逐字符地比较两个文件.它必须能够读入命令行选项"-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)