小编giu*_*pen的帖子

Python argparse整数条件(> = 12)

我需要请求参数> = 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选项获得这个结果.

python argparse

20
推荐指数
3
解决办法
1万
查看次数

mercurial将分支设置为新的默认分支

我需要的结果是,当克隆存储库时,代码位于不是默认分支的分支的最后一个版本,而不需要执行"hg update mybranchname".这可能吗?

mercurial branch clone

7
推荐指数
1
解决办法
3543
查看次数

gtk(mm)3按钮背景颜色变化

我正在尝试将按钮的背景颜色更改为红色,但似乎不起作用.我粘贴示例代码.如果有人可以告诉我如何修复我的代码,请帮忙.

#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)

c++ gtkmm

6
推荐指数
2
解决办法
4279
查看次数

c/c ++ syslog到自定义文件(不是/ var/log/syslog但是/ var/log/mylog) - ubuntu 12.04

我在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上.有人知道什么是错的吗?谢谢.

ubuntu syslog

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

c ++琐碎的try-catch导致中止

下面的简单代码

// 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)

我不明白什么是错的,有人能指出我正确的方向吗?

c++

4
推荐指数
2
解决办法
1239
查看次数

python argparse字符串列表的选择接受唯一的部分列表元素

我想有以下规则

parser.add_argument('move', choices=['rock', 'paper', 'scissors'])
Run Code Online (Sandbox Code Playgroud)

如果您传递一个唯一的字符子集(例如"k"或"oc"将被接受为"rock"而不是"r",因为它不是唯一的).

我的需求是能够以最快的方式使用一个或多个参数运行脚本,以避免在子集足以让脚本理解选择时编写整个参数名称.

有没有办法获得这个结果仍然利用在帮助和错误处理中自动集成的方便选择列表?

python argparse

4
推荐指数
1
解决办法
705
查看次数

/ dev/ttyS0在ubuntu 12.04 beta中无法打开

我在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之后退出.有没有人经历过同样的事情并以某种方式成功了?

ubuntu serial-port

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

Python代码在提示符下工作,而不是在脚本中工作

使用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()我可以看到屏幕上显示的图像,如果我在脚本中运行它,则不会显示图像我可以看到飞溅后的打印正确在终端上.

任何人都可以帮助我理解这两种不同行为的原因是什么?

python command-line pyqt

1
推荐指数
1
解决办法
181
查看次数

标签 统计

python ×3

argparse ×2

c++ ×2

ubuntu ×2

branch ×1

clone ×1

command-line ×1

gtkmm ×1

mercurial ×1

pyqt ×1

serial-port ×1

syslog ×1