小编Faz*_*ton的帖子

Python字典:获取键列表的值列表

是否有内置/快速方法使用字典键列表来获取相应项的列表?

比如我有:

>>> mydict = {'one': 1, 'two': 2, 'three': 3}
>>> mykeys = ['three', 'one']
Run Code Online (Sandbox Code Playgroud)

如何使用mykeys字典中的相应值作为列表?

>>> mydict.WHAT_GOES_HERE(mykeys)
[3, 1]
Run Code Online (Sandbox Code Playgroud)

python dictionary key list

163
推荐指数
7
解决办法
22万
查看次数

每次提交都运行git run shell命令

我想介绍一系列提交并对每个提交执行shell命令.如果命令失败,我希望步行停止,否则继续前进.我已经看了filter-branch,但我不想重写提交,只是检查出来. for-each-ref似乎不允许您指定要操作的范围.

我的具体问题是我创建了一堆提交,我想确保每个提交都是可构建的.我想做的事情如下:

git foreach origin/master..master 'git submodule update && make clean && make'
Run Code Online (Sandbox Code Playgroud)

我当然可以编写一个shell脚本来执行此操作,但看起来git可能有一个很好的方法.

git shell

43
推荐指数
3
解决办法
7910
查看次数

Java中的默认操作按钮图标

Swing应用程序框架中是否有一组默认操作图标?

例如,我不想制作一个说"保存"的按钮,而是想要软盘的标准图片而不必自己指定图像.对于"打开",我想要文件夹的标准图片.如果这些适应了外观和感觉会很棒,但我会采用Swing默认值.

我想的是:

new JButton(new ImageIcon(DEFAULT_OPEN_ICON));
Run Code Online (Sandbox Code Playgroud)

我已经找到了许多关于改变外观和感觉的资源,但没有关于嵌入Java或从本机系统挖出的图标.

java icons swing

17
推荐指数
3
解决办法
2万
查看次数

Git通过grep/regex添加行索引

我有一个巨大的补丁,我想打破多个逻辑git提交.大量的更改只是更改变量名称或函数调用,以便可以使用grep轻松定位它们.如果我可以向索引添加任何与正则表达式相匹配的更改然后在git gui中清理,它将为我节省大量的手动工作.是否有一种很好的方法可以在git中使用正则表达式或从grep的某些输出(例如行号)逐行更新索引?

我发现了一个类似的问题,但我不确定如何从正则表达式搜索构建临时文件.

regex git git-add

17
推荐指数
3
解决办法
1327
查看次数

APN登录信息是否存储在SIM卡上?

我通过标准的GSM AT命令接口与GSM调制解调器模块连接.现在,每个已知运营商的接入点名称(APN),用户名和密码都在我的软件中进行了硬编码.我想知道这些信息是否由运营商在SIM卡上提供.是这样的吗?

我愿意尝试用"+ CRSM"或"+ CSIM"直接访问SIM卡的文件结构,但想知道在开始之前APN信息是否存在.如果是,是否有描述包含此信息的SIM文件结构的链接?非常感谢.

telephony gsm

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

Vim:没有前导字符的Textwrap

我正在VIM中编写一个弹出的列表,并设置textwidth = 79来硬包装线.当我写清单时,我希望每个回车都能产生一个新的子弹,并且包裹的线条没有子弹.然而,VIM正在做相反的事情(包裹线上的子弹,回车后没有子弹).我想要:

* Item 1 - The text for this line is too long and
  so is wrapped to the next line.
* Item 2 - Typing a carriage return after item 1
  should produce the bullet for this item.
Run Code Online (Sandbox Code Playgroud)

但是,VIM会这样做:

* Item 1 - The text for this line is too long and
* so is wrapped to the next line.
Item 2 - Typing a carriage return after item 1
should produce the bullet for this line. …
Run Code Online (Sandbox Code Playgroud)

vim word-wrap autoformatting

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

DeviceTree中的命名GPIO

我正在尝试为嵌入式系统创建设备树,并希望向用户空间公开一些GPIO。这些不是,也不应该由内核驱动程序使用。例如,有一个USB设备焊接到板上,由用户空间驱动器控制。它具有GPIO重置线,用户空间库需要访问该重置线。

我希望这些文件在sysfs中通过名称公开,以便用户空间可以访问/sys/class/gpio/usbreset而不需要知道不可思议的gpio编号并需要专门“导出”它。我尝试将其设置为GPIO猪,该猪初始化GPIO,但其名称未出现在sysfs中,并且在将其拖入时无法导出gpio。我知道我可以选择其他内核驱动程序类型,例如LED,但它不是LED,对我来说,这似乎不是很干净。

在sysfs中导出命名的GPIO的正确方法是什么?

linux embedded sysfs gpio device-tree

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

C读取串口操作的呼叫阻塞

我试图在Linux中编写一个C程序,通过串口从微控制器发送和接收数据.作为测试,我已将微控制器配置为立即回显所有发送的字符.我已经验证这可以在minicom中工作,也可以使用"cat"和"echo"来发送和接收数据.

但是,当我尝试在C程序中执行相同操作时,我的读取调用会永久阻塞.我将串口设置为非规范模式,MIN为'1',TIME为'0'.我的minicom测试证明微控制器在键入时返回字符,所以我希望在写调用发送字符后返回读取.我将我的代码与几个在线示例进行了比较,但我没有发现任何我遗漏的内容.我已尝试过以下代码的几种排列,但没有运气.有人能发现问题吗?

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <termios.h>

#define UART_SPEED B115200

char buf[512];

void init_serial (int fd)
{
    struct termios termios;
    int res;

    res = tcgetattr (fd, &termios);
    if (res < 0) {
        fprintf (stderr, "Termios get error: %s\n", strerror (errno));
        exit (-1);
    }

    cfsetispeed (&termios, UART_SPEED);
    cfsetospeed (&termios, UART_SPEED);

    termios.c_iflag &= ~(IGNPAR | IXON | IXOFF);
    termios.c_iflag |= IGNPAR;

    termios.c_cflag &= ~(CSIZE | PARENB | CSTOPB | CREAD | CLOCAL);
    termios.c_cflag …
Run Code Online (Sandbox Code Playgroud)

c serial-port termios

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

仅订单先决条件的多个隐式规则

我正在尝试制作一个仅订单的先决条件,以确保在输出文件之前存在构建目录.根据GNU Make手册:

您仍然可以为同一目标声明多行先决条件:它们会相应地附加(正常的先决条件会附加到正常先决条件列表中;仅限订单的先决条件会附加到仅限订单的先决条件列表中).

所以我希望这应该有效:

BUILDDIR:=build

all: $(BUILDDIR)/test.o
clean:
    rm -rf $(BUILDDIR)

$(BUILDDIR):
    mkdir -p $(@)

$(BUILDDIR)/%.o: | $(BUILDDIR)
$(BUILDDIR)/%.o: %.c
    gcc -o $@ -c $<
Run Code Online (Sandbox Code Playgroud)

但它没有,无法创建目录.但是,当我将规则放在一行时,它确实有效:

$(BUILDDIR)/%.o: %.c | $(BUILDDIR)
Run Code Online (Sandbox Code Playgroud)

在这个简单的例子中,它并不重要,但我需要为我更复杂的makefile创建这样的多个先决条件列表,并且手册使它听起来应该有效.我怎么能做到这一点?

如果重要:

$ make -v
GNU Make 3.81
Run Code Online (Sandbox Code Playgroud)

makefile gnu-make

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

在Perl中处理具有不同基数的命令行参数

当在Perl程序中用作文字时,数字的处理方式与C中的相同:"0x"前缀表示十六进制,"0"前缀表示八进制,没有前缀表示十进制:

$ perl -E 'print 0x23 . "\n"'
35
$ perl -E 'print 023 . "\n"'
19
$ perl -E 'print 23 . "\n"'
23
Run Code Online (Sandbox Code Playgroud)

我想使用相同的表示法将命令行参数传递给Perl.例如,如果我传递23,我想将字符串参数转换为十进制值(23).如果我传递0x23,我想转换为十六进制值(35),023将转换为八进制(19).有没有内置的方法来处理这个?我知道hex()和oct(),但是他们将没有前缀的数字解释为hex/oct(不是十进制).遵循这个约定,似乎我想要一个dec()函数,但我不认为存在.

perl hex command-line-arguments

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