小编Set*_*ton的帖子

CMake用户选项的命令行帮助

我的CMakeLists.txt文件中有一些选项可以-D在命令行中选择,如下所示:

# Set some options the user may choose
OPTION(USE_MPI "Use the MPI library for parallelization" OFF)
OPTION(USE_OPENMP "Use OpenMP for parallelization" OFF)
OPTION(TESTING "Enable testing of both Fortran and Python code" OFF)
OPTION(PYTHON_TOOLS "Build the python helper tools" OFF)
OPTION(BUILD_DOCS "Build the documentation; turns on PYTHON_TOOLS" OFF)
Run Code Online (Sandbox Code Playgroud)

我可以用类似的东西激活其中一个

$ cmake . -DUSE_MPI=ON
Run Code Online (Sandbox Code Playgroud)

有时候我会忘记我选择的选项.如果有某种-h标志可以用来以自动方式在命令行上显示(以python的风格),那将是很好的argparse.

是否有自动生成特定CMakeLists.txt帮助文档的方法,和/或使用某种-h--help标志调用该帮助?我正在寻找能给我这种行为的东西:

$ cmake . --help
USE_MPI - Use the MPI library for parallelization (Default: OFF)
USE_OPENMP …
Run Code Online (Sandbox Code Playgroud)

cmake

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

如何在Python脚本中接受管道输入和用户提示输入?

我有一个脚本,旨在接受来自stdin的输入,然后提示用户输入更多内容.这是一个人为的例子来说明我的意思:

import sys

# Get input from stdin
input_nums = [int(n.strip()) for n in sys.stdin]

# Prompt user
mult = int(raw_input("Enter a number by which to multiply your input: "))

for num in input_nums:
    print num*mult
Run Code Online (Sandbox Code Playgroud)

当我从stdin传入数据时,python将stdin解释为在它到达之前关闭raw_input,它给出了EOFError: EOF when reading a line:

[user]$ cat nums.txt
2
3
4
5
[user]$ cat nums.txt | python sample.py
Enter a number by which to multiply your input: Traceback (most recent call last):
  File "sample.py", line 6, in <module>
    mult …
Run Code Online (Sandbox Code Playgroud)

python user-input input

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

Doc扩展在C-extension和Python3上使用UnicodeDecodeError失败

我很难让我的测试框架适用于Python2和Python3的C扩展模块.我喜欢运行我的文档字符串doctest以确保我没有向用户提供不良信息,所以我想在doctest测试中运行.

我不相信我的问题的根源是文档字符串本身,而是doctest模块如何尝试读取我的扩展模块.如果我运行doctestPython2(在针对Python2编译的模块上),我得到了我期望的输出:

$ python -m doctest myext.so -v
...
1 items passed all tests:
98 tests in myext.so
98 tests in 1 items.
98 passed and 0 failed.
Test passed.
Run Code Online (Sandbox Code Playgroud)

但是,当我使用Python3时,我得到了一个UnicodeDecodeError:

$ python3 -m doctest myext3.so -v
Traceback (most recent call last):
...
  File "/usr/local/Cellar/python3/3.3.3/Frameworks/Python.framework/Versions/3.3/lib/python3.3/doctest.py", line 223, in _load_testfile
    return f.read(), filename
  File "/usr/local/Cellar/python3/3.3.3/Frameworks/Python.framework/Versions/3.3/lib/python3.3/codecs.py", line 301, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte …
Run Code Online (Sandbox Code Playgroud)

python doctest python-c-extension python-3.x

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

为什么 QtWidgets.QApplication 需要 sys.argv?

大家好,我正在 youtube 上的一系列教程中学习 pyqt5,我不明白为什么QtWidgets.QApplication有这样的论点:sys.argv我不熟悉sys库,我阅读了文档,但仍然没有任何线索,所以抱歉,我知道这个问题有点菜鸟。

import sys
from PyQt5 import QtWidgets


def window():
    app = QtWidgets.QApplication(sys.argv)
    w=QtWidgets.QWidget()
    w.show()
    sys.exit(app.exec_())

window()
Run Code Online (Sandbox Code Playgroud)

sys python-3.x pyqt5

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

一次按两列排序

我有这个:

A    B    C
1    4    string1 
2    11   string2  
1    13   string3
2    43   string4
Run Code Online (Sandbox Code Playgroud)

并且,我想同时按A和B排序,以获得:

A    B    C
1    4    string1 
1    13   string3
2    11   string2  
2    43   string4
Run Code Online (Sandbox Code Playgroud)

使用以下内容没有进行排序

data =  data.sort_values(by=['A','B'], ascending=[True,True])
Run Code Online (Sandbox Code Playgroud)

python multiple-columns pandas

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

更改 DataFrame 列类型但使用错误默认值的简单方法?

假设我有以下列。

>>> import pandas
>>> a = pandas.Series(['0', '1', '5', '1', None, '3', 'Cat', '2'])
Run Code Online (Sandbox Code Playgroud)

我希望能够将列中的所有数据转换为 type int,并且任何无法转换的元素都应该替换为0.

我当前的解决方案是使用to_numericwith'coerce'选项,用 填充任何NaN内容0,然后转换为int(因为 的存在NaN使得列float而不是int)。

>>> pandas.to_numeric(a, errors='coerce').fillna(0).astype(int)
0    0
1    1
2    5
3    1
4    0
5    3
6    0
7    2
dtype: int64
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以让我一步完成此操作,而不必经历两个中间状态?我正在寻找类似于以下想象选项的东西astype

>>> a.astype(int, value_on_error=0)
Run Code Online (Sandbox Code Playgroud)

python type-conversion pandas

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

CUDA如何在一个内核函数中启动新的内核调用?

我是CUDA编程新手.现在,我有一个问题要处理:我正在尝试使用CUDA并行编程来处理一组数据集.对于每个数据集,都需要进行一些矩阵计算.

我的设计是这样的:

  1. 启动N个线程来处理每个数据集,因为它们彼此独立,处理它们的方法是相同的.

  2. 在1中的每个线程中,我想使用一个新函数,这个函数也像内核一样工作,因为它们是矩阵计算...例如调用M个线程来并行处理矩阵计算.

有谁知道它是否可能?

cuda

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

我怎么做这个工作?\n在文件路径中(非故意)

我必须阅读和写作f=open

使用时我的文件路径是:

f=open("N:\gcse_computing_my_name\component_2\neatest\Login.txt")(w)
Run Code Online (Sandbox Code Playgroud)

在此文件路径中使用\ N或\n会破坏我的代码.我无法更改文件夹名称,必须使用该文件夹.

我怎么能绕过这个?

python

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

在 Sublime Text 2/3 中为特定文件名设置语法

我有一个程序,它使用一个名为的文件user.cfg来获取其用户定义的配置设置。奇怪的是,他们选择了语法这个文件是Tcl的(这不是奇怪的是,这是TCL,很奇怪他们选择了.cfg延长,而不是.tcl)。所以,当我在 Sublime Text 中打开这个文件时,它不知道选择什么语法高亮方案。

我想要做的是将语法突出显示设置为user.cfgTcl,但不是所有.cfg文件都设置为 Tcl。

我见过这个问题,它与我的非常相似,除了在那种情况下特殊文件名没有扩展名,所以 Sublime Text 知道只将 Ruby 突出显示分配给那个文件。不幸的是,我有一个扩展,所以那里给出的解决方案对我不起作用。

有没有已知的方法可以让 Sublime Text 基于完整文件名的突出显示方案?

sublimetext sublimetext2 sublimetext3

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

Python排序不工作

我有代码来排序元组列表:

s = "betty bought a bit of butter but the butter was bitter"
words = s.split()
l = []
k = []
unique_words = sorted(set(words))
for word in unique_words:
     k.append(word)
     l.append(words.count(word))

z = zip(k,l)
print z
reversed(sorted(z, key=lambda x: x[1]))
print z
Run Code Online (Sandbox Code Playgroud)

z是相同的,列表不会被排序甚至反转.

我试图按计数的整数值排序.

python sorting python-2.7

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