我需要请求参数> = 12使用argparse.
我无法找到一种方法来获得这个结果argparse,似乎没有办法将规则设置为给定的值,但只有完整的接受值集合,如choices = ['rock','paper','scissors'].
我的代码是:
import sys, argparse
parser = argparse.ArgumentParser()
parser.add_argument("-b", "--bandwidth", type=int, help="target bandwidth >=12")
args = parser.parse_args()
if args.bandwidth and args.bandwidth < 12:
print "ERROR: minimum bandwidth is 12"
sys.exit(1)
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法直接用一些argparse选项获得这个结果.
我需要的结果是,当克隆存储库时,代码位于不是默认分支的分支的最后一个版本,而不需要执行"hg update mybranchname".这可能吗?
我正在尝试将按钮的背景颜色更改为红色,但似乎不起作用.我粘贴示例代码.如果有人可以告诉我如何修复我的代码,请帮忙.
#include <gtkmm.h>
// g++ simple.cc -o simple `pkg-config gtkmm-3.0 --cflags --libs`
int main(int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
Gtk::Window window;
Gtk::Button button("TEST");
button.override_background_color(Gdk::RGBA("red"));
window.add(button);
window.show_all();
Gtk::Main::run(window);
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
更新:好的,我是如何解决的:
mr_screen = Gdk::Screen::get_default();
mr_style_context = mp_window->get_style_context();
mr_css_provider = Gtk::CssProvider::create();
mr_css_provider->load_from_path(Glib::build_filename(m_glade_dir_path, "filename.css"));
mr_style_context->add_provider_for_screen(mr_screen, mr_css_provider, GTK_STYLE_PROVIDER_PRIORITY_USER);
Run Code Online (Sandbox Code Playgroud)
而filename.css的内容是:
column-header .button {
background-image: -gtk-gradient (linear,
left top,
left bottom,
from (#51cccc),
color-stop (0.5, darker (#51cccc)),
to (#51cccc));
}
Run Code Online (Sandbox Code Playgroud) 我在ubuntu 12.04上成功测试了以下syslog"hello world"示例:
// gcc giuspexample.c -o giuspexample
#include <syslog.h>
int main()
{
setlogmask(LOG_UPTO (LOG_NOTICE));
openlog("atm", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL0);
syslog(LOG_NOTICE, "Program started by User %d", getuid ());
syslog(LOG_INFO, "A tree falls in a forest");
closelog();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我可以读取/ var/log/syslog中的条目.关于如何更改目标文件路径,我按照http://www.codealias.info/technotes/syslog_simple_example上的说明进行操作
echo "local0.* /var/log/mylog" >> /etc/syslog.conf
Run Code Online (Sandbox Code Playgroud)
但试图跑
sudo /etc/init.d/syslog restart
Run Code Online (Sandbox Code Playgroud)
不起作用(命令未找到)并重新启动电脑无论如何都不会开始写/ var/log/mylog但仍然在/ var/log/syslog上.有人知道什么是错的吗?谢谢.
下面的简单代码
// g++ centro.cc -o centro
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
try
{
cout << "Going to throw" << endl;
throw;
}
catch(...)
{
cout << "An exception occurred" << endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
产生中止:
Going to throw
terminate called without an active exception
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)
我不明白什么是错的,有人能指出我正确的方向吗?
我想有以下规则
parser.add_argument('move', choices=['rock', 'paper', 'scissors'])
Run Code Online (Sandbox Code Playgroud)
如果您传递一个唯一的字符子集(例如"k"或"oc"将被接受为"rock"而不是"r",因为它不是唯一的).
我的需求是能够以最快的方式使用一个或多个参数运行脚本,以避免在子集足以让脚本理解选择时编写整个参数名称.
有没有办法获得这个结果仍然利用在帮助和错误处理中自动集成的方便选择列表?
我在ubuntu 12.04测试版上.我假设minicom在/ dev/ttyS0上正常工作(但putty没有).我在C代码中控制端口,它在ubuntu 11.10上正常工作:
fd = open(p_ttys_parms->device, O_RDWR | O_NOCTTY | O_NDELAY);
if(fd < 0)
{
printf("ERROR: cannot open device %s\n", p_ttys_parms->device);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但在12.04测试版中,我得到fd <0并在printf之后退出.有没有人经历过同样的事情并以某种方式成功了?
使用python几年后,这是第一次尝试在python提示符中逐行尝试一些代码,而不是在脚本文件中运行它.
代码很简单:
import os, sys
from PyQt4 import QtGui, QtCore, uic
app = QtGui.QApplication(sys.argv)
splash=QtGui.QSplashScreen(QtGui.QPixmap("/home/pippo/splashscreen.jpg"))
splash.show()
print "hello!"
time.sleep(10)
Run Code Online (Sandbox Code Playgroud)
如果我在python提示符(版本2.7.3)中逐行输入行splash.show()我可以看到屏幕上显示的图像,如果我在脚本中运行它,则不会显示图像我可以看到飞溅后的打印正确在终端上.
任何人都可以帮助我理解这两种不同行为的原因是什么?