小编chr*_*ock的帖子

使用Python中的图形对话框询问用户密码的最简单方法?

我正在开发一个备份守护进程,它将在后台静默运行.守护程序依赖于duplicity备份软件,备份时需要加密密钥.我不能通过控制台询问密码,因为很明显,守护进程无法访问密码.

我怎样才能轻松创建一个提示,要求用户输入密码,并将其返回给应用程序(通过Python变量)?我正在使用Python 2.7.

python passwords python-2.7

6
推荐指数
3
解决办法
9984
查看次数

打开并使用Safari

我对mac世界比较陌生.我的问题是关于在mac osx上使用python打开一个应用程序.从我到目前为止发现,似乎应用程序以app格式存储,实际上是目录.在打开应用程序时,操作系统会以某种方式解析这些问题吗?我想使用python打开Safari,它位于我的/Applications/Safari.app目录中.是否有一个特定的二进制文件我应该传递给os.system或者我应该以完全不同的方式进行它?我的最终目标是让safari打开一个本地html文件,关闭它然后打开另一个本地html文件.

谢谢,约翰

python macos

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

在Python中创建CLI(Shell?)

我是Python的新手,但我必须在学校实现Python语言的命令行解释器,但我有点迷失在如何做到这一点.

我已经阅读了一些教程并创建了一个名为functions.py的简单文件,其中包含一些简单的函数,如下所示:

def delete(loc):
    if os.path.exists(loc) == True:
        os.remove(loc)
        print "Removed"
    else:
        print "File not exists"
Run Code Online (Sandbox Code Playgroud)

现在..这里是东西..为了使用这个我必须在python命令解释器中导入它,就像...

import functions
functions.delete("file to delete")
Run Code Online (Sandbox Code Playgroud)

我怎样才能创建一个Shell/CLI,而不必编写所有这些,我可以这样写:

delete file_name
Run Code Online (Sandbox Code Playgroud)

谢谢!

python command-line-interface

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

从Boost线程返回Double

嗨,我有一个Boost线程,应该返回一个双.该函数如下所示:

void analyser::findup(const double startwl, const double max, double &myret){
  this->data.begin();
  for(int i = (int)data.size() ; i >= 0;i--){
    if(this->data[i].lambda > startwl){
      if(this->data[i].db >= (max-30)) {
        myret = this->data[i+1].lambda;
        std::cout <<"in thread " << myret << std::endl;
        return;
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

此函数由另一个函数调用:

void analyser::start_find_up(const double startwl, const double max){
  double tmp = -42.0;
  boost::thread up(&analyser::findup,*this, startwl,max,tmp);
  std::cout << "before join " << tmp << std::endl;
  up.join();
  std::cout << "after join " << tmp << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

无论如何,我已经尝试过谷歌几乎任何东西,但我不能让它返回一个值.

输出现在看起来像这样.

before …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading boost

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

Getopt-文件名作为参数

假设我制作了一个C程序,其名称如下:

./something -d dopt filename
Run Code Online (Sandbox Code Playgroud)

所以-d是一个命令,dopt是一个可选的参数-d,并filename为参数./something,因为我也可以调用./something filename

getopt获取文件名的形式是什么?

c unix

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

通过UDP发送任何类型的数据

我试着到处寻找但没有运气.这是我的问题:

我有一个UDP套接字,它可以通过任何端口将数据发送到任何IP地址(经过测试和确认工作).

我阅读了很多教程,但他们都在操纵char*[],他们没有指定如何解密它.

我想做什么(伪代码):

客户:

Class my_class;
send (..., my_class, sizeof(my_class),...)
Run Code Online (Sandbox Code Playgroud)

服务器:

receive (sender, buffer, sizeof (buffer))
and do something like
Class my_class = (Class) buffer
Run Code Online (Sandbox Code Playgroud)

所以我的服务器可以分析缓冲区的内容.

但是我迷失了指针,我所能发送的只是char*[],所以我不知道如何来回转换.

c++ udp

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

C程序链接共享库而不设置LD_LIBRARY_PATH

我正在阅读GCC简介,它说如果一个软件包同时包含.a和.so.gcc更喜欢共享库.默认情况下,加载程序仅在预定义的一组系统目录(例如/usr/local/lib和)中搜索共享库/usr/lib.如果库不在其中一个目录中,则必须将其添加到加载路径,或者您需要使用-static选项强制它使用.a库.但是,我尝试了以下方法:

vim hello.c:

#include <gmp.h>
#include <stdio.h>

int main() {
        mpz_t x;
        mpz_init(x);
        return 0;
}

gcc hello.c -I/opt/include -L/opt/lib -lgmp  (my gmp library is in opt)
./a.out
Run Code Online (Sandbox Code Playgroud)

它运行.该书说它应该有以下错误:

./a.out: error while loading shared libraries:
libgdbm.so.3: cannot open shared object file:
No such file or directory
Run Code Online (Sandbox Code Playgroud)

(好吧,这本书以GDBM为例,但我使用的是GMP,但这没关系吗?)

但是,我没有设置LD_LIBRARY_PATH=/opt/lib,你可以看到我也没有使用-static选项,但a.out仍然运行.

你能告诉我为什么,并告诉我如何得到书中描述的错误?是的我想要错误,所以我会理解我误解的内容.

c compiler-construction gcc

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

如何将numpy ndarray导出为字符串变量?

我正在尝试使用以下代码编写一个xml文件:

def make_xml(a_numpy_array):

    from lxml import etree as ET

    root = ET.Element('intersections')
    intersection = ET.SubElement(root, 'intersection')
    trace = ET.SubElement(intersection, 'trace')
    trace.text = a_numpy_array

    print ET.tostring(root, pretty_print=True, xml_declaration=True, encoding = 'utf-8')
Run Code Online (Sandbox Code Playgroud)

.....

trace.text期望一个字符串输入.我想在这里放入一个存储为numpy ndarray的2D数组的xml文件.但我似乎无法将数据导出到字符串.numpy.tostring给我字节码,我该怎么办?我想出的解决方案是将ndarray写入文本文件,然后将文本文件作为字符串读取,但我希望能够跳过编写文本文件.

python string lxml numpy elementtree

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

xargs:如何替换文字双引号?

我有一个带有 JSON-Objects 的源文件,每行一个,如下所示:

来源:

{"_id":"1","name":"one"}
{"_id":"2","name":"two"}
{"_id":"3","name":"three"}
Run Code Online (Sandbox Code Playgroud)

我想将每一行发送到

curl -X POST -H "application/json" myURL -d '<REPLACEMENT>'
Run Code Online (Sandbox Code Playgroud)

当我尝试时,双引号不会使其卷曲

<source xargs -I % curl -X POST -H "application/json" myURL -d '%'
Run Code Online (Sandbox Code Playgroud)

我尝试转义 curl 命令中的引号,后来我用 \" 替换了源文件中的所有双引号。我发现没有可用的版本。

另一种使用 seq 和 sed 将每一行写入临时文件的方法, curl -d @temp 对我不起作用。

是否有一个优雅的解决方案,或者我必须编写一个带有循环的脚本?

bash json curl xargs

5
推荐指数
2
解决办法
3619
查看次数

numpy数组打印某个值的索引

给定一个 numpy 数组

A = np.array([[[29, 64, 83],
               [17, 92, 38],
               [67, 34, 20]],
              [[73, 28, 45],
               [19, 84, 61],
               [22, 63, 49]],
              [[48, 30, 13],
               [11, 52, 86],
               [62, 25, 12]]])
Run Code Online (Sandbox Code Playgroud)

我想要某个值的索引,比如 63

值不可能重复或丢失

我做了

idx = np.where(A == 63)

print(idx)
Run Code Online (Sandbox Code Playgroud)

我有

(array([1], dtype=int32), array([2], dtype=int32), array([1], dtype=int32))
Run Code Online (Sandbox Code Playgroud)

我想要的是

[1, 2, 1]
Run Code Online (Sandbox Code Playgroud)

作为列表或其他可迭代的,没有所有这些array, dtype=int32等等。

我该怎么做呢?

python arrays indexing numpy

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