我有一个脚本,需要sys.argv,输入可能包含特殊字符(分号).我只需要输入字符串,但分号混淆了一切......
我有:
def myscript(text)
print text
a = myscript(sys.argv[1])
print a
Run Code Online (Sandbox Code Playgroud)
我尝试:
>> python script.py "With these words she greeted Prince Vasili Kuragin, a man of high rank and importance, who was the first to arrive at her reception. Anna Pavlovna had had a cough for some days. She was, as she said, suffering" from la grippe; grippe being then a new word in St. Petersburg""
Run Code Online (Sandbox Code Playgroud)
我明白了:
'With these words she greeted Prince Vasili Kuragin, a man of high rank …Run Code Online (Sandbox Code Playgroud) 尝试在Mac上运行Ruby时出错.我使用RVM安装它.但是当我输入它时,它会卡在命令提示符上,就像它等待一样.默认情况也是如此.我不知道为什么会这样.运行10.7.3.有任何想法吗?
我想使用命令行工具生成所有标签的列表tf.exe.我怎样才能做到这一点?
我有一个原子模拟程序(用Fortran编写,我没有源代码)提示用户输入温度,每个原子的质量数量的迭代次数等,然后运行给定输入文件的模拟(指定所有原子的初始位置).在所有迭代之后,程序输出一个包含原子最终位置的文本文件,然后关闭.
我试图在不同的温度下运行相同的模拟,所以我希望通过Python自动化输入过程.因此,Python程序将:
我的主要问题是2号.我无法弄清楚如何从Python输入命令行程序.它甚至可能吗?我已经读过它会与操作系统或子进程模块有关,但我不清楚它们是如何工作的.
注意:我使用Windows.
我正在编写一个简短的python脚本来读取stdin中的行,但是当我运行它并按下home,end,left,right等键时,它不起作用,它会在行上打印键.
我还希望使用"上/下"功能来查看编辑历史,就像python交互式控制台一样.
是否有捷径可寻?我尝试过getch和curses,但这似乎并不容易.尝试诅咒缠绕我的命令行窗口.
我需要生成在Windows系统上分别创建,修改和访问的所有文件的列表.
我在forfiles这里找到了命令http://technet.microsoft.com/sv-se/library/cc753551(v=ws.10).aspx但显然这不使用创建和访问的时间戳,我也需要那些(在单独的名单).
我也研究过使用该dir命令,但我只找到了对帮助部分中的排序和过滤的引用.
我对命令行Ubuntu不太熟悉(单独留下远程复制文件)所以如果这个问题有点太常见,我会道歉.
我的设置有点不寻常,所以我无法通过在线研究找到太多.
我正在使用Win7机器,我通过Putty进入Ubuntu(11.10)服务器.我尝试了以下命令,
scp textFile.txt user@ipaddress:
Run Code Online (Sandbox Code Playgroud)
它textFile.txt位于Ubuntu机器上,user是Win7机器上的帐户,ipaddress是Win机器的IPv4地址.我甚至提出了-4选择,但每次它都在说Connection timed out.
有什么办法可以将这个文件复制到我的机器上吗?
两者都在同一个网络上.
美好的一天,
我正在编写一个简单的CLI(命令行界面)应用程序,它提供了一个简单的提示,可以接受来自用户的字符串,验证它们,并根据输入执行某些操作.非常坦率的.
我正在寻找一个独立于平台,NON-GPL/LGPL的手段(或者,至少适用于兼容POSIX的操作系统,如Linux,BSD等),所以我可以使用上/下箭头键来回滚动在我的CLI应用程序中以前键入的命令的历史记录中,并将它们显示在输入行中.
目标是有效地模仿BASH和大多数其他炮弹中的历史特征.我想只使用向上/向下键并检测它们.我假设我需要为此使用中断或一些专门的库; 我真的想用标准ANSI C来做这件事,并且必须完全避免使用任何第三方库.
是否可以将命令的输出放入文件中?我试过做一个
echo history > history.txt
但它将文本历史记录改为该文件.
我需要从C#应用程序中访问命令行.如果我使用"args"参数,我找不到检测不匹配的双引号的方法.
我正在处理的应用程序可以选择加密通过命令行传递给它的字符串.
例如.
program.exe -encrypt somestring
Run Code Online (Sandbox Code Playgroud)
结果是:
EZs/6rWxvJ82+VE8unJ0Xw==
Run Code Online (Sandbox Code Playgroud)
现在,如果用户输入:
program.exe -encrypt somestring extra characters
Run Code Online (Sandbox Code Playgroud)
它会忽略"somestring"之后的所有内容(您仍然可以通过"args"参数访问其余值).
您可以使用双引号轻松解决此问题:
program.exe -encrypt "somestring extra characters"
Run Code Online (Sandbox Code Playgroud)
当然,如果您想使用嵌入式引号,可以使用"\"来转义它们:
program.exe -encrypt "somestring \"extra\" characters"
Run Code Online (Sandbox Code Playgroud)
当用户输入如下内容时会发生此问题:
program.exe -encrypt "somestring extra characters
Run Code Online (Sandbox Code Playgroud)
要么:
program.exe -encrypt somestring ex"tra characters
Run Code Online (Sandbox Code Playgroud)
该程序将完全忽略双引号,这不是用户期望的.我想检测这样的情况并告知用户不匹配/未转义的报价,否则他们可能最终得到错误字符串的加密版本.