小编ana*_*nik的帖子

这条线在Python中意味着什么?

此代码尝试检索哪些CPU信息.此代码是更大包的一部分.我不是Python程序员,我想将此代码转换为C#.

from ctypes import c_uint, create_string_buffer, CFUNCTYPE, addressof
CPUID = create_string_buffer("\x53\x31\xc0\x40\x0f\xa2\x5b\xc3")
cpuinfo = CFUNCTYPE(c_uint)(addressof(CPUID))
print cpuinfo()
Run Code Online (Sandbox Code Playgroud)

如果您是一名Python程序员并且知道这段代码在做什么,那对我来说将是一个很大的帮助.

c# python windows cpu cpuid

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

单个cmd.exe会话的临时文件关联

我需要为.py文件设置关联以使用特定的python版本执行.但我需要仅为单个cmd.exe会话建立此关联(并行会话不应受影响).Windows是否允许这样做?

我怀疑答案是否定的,但是我希望看到一些证据,然后再将这个功能转化为virtualenv.

python windows file-association

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

在Windows上的os.pipe上读取非阻塞

这个问题 - 如何从os.pipe()读取而不被阻止?- 显示如何检查os.pipeLinux 是否有任何数据的解决方案,为此您需要将管道置于非阻塞模式:

import os, fcntl
fcntl.fcntl(thePipe, fcntl.F_SETFL, os.O_NONBLOCK)
Run Code Online (Sandbox Code Playgroud)

在Windows上我们有这个:

ImportError: No module named fcntl
Run Code Online (Sandbox Code Playgroud)

但是os.pipe有:

>>> os.pipe()
(3, 4)
Run Code Online (Sandbox Code Playgroud)

那么,是否可以进行非阻塞读取或窥视os.pipeWindows上的内容?

python windows pipe

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

如何在Windows中创建具有尾随句点的文件名?

如何使用以Python结尾的文件名?根据MSDN的网站,这样的文件名在Windows中是有效的,但每当我尝试用Python创建一个文件名时,它就会删除最后一段时间.我甚至尝试用os.open创建一个原始文件描述符,但它仍然删除了句点.

例如,这将创建一个名为' test' 的文件

os.open('test.', os.O_CREAT | os.O_WRONLY, 0777)
Run Code Online (Sandbox Code Playgroud)

编辑:这是确切的报价

关于文件名和目录中的空格和点.限制在Windows shell中 - 不在Windows或NT中.使用'bash',您可以在文件名的开头和结尾创建带空格(或点)的文件.然后,您可以在资源管理器中列出并打开这些文件,并且可以在shell(cmd.exe)中"列出"它们,但是您不一定能够从shell中打开它们(尤其是尾随空格和点).

c python windows filenames

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

setup.py的替代方案

setup.py 有一个重大问题:

  • 它无法安全解析

这导致了很多问题 - 无法安全地分析,从PyPI读取100k +包需要太多开销,源包无法自动转换为Debian和Fedora等本机系统格式.

那么,是否有任何替代方法可以使用静态数据格式(不是setup.py)来打包Python内容来描述和包装其内容?因此,a source package只是源检出的.zip文件,不需要魔术和构建步骤.

python pypi setup.py

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

TERM=哑终端必须具备的功能

我期待实现远程客户端它通过连接到Linuxnc和开始bash。所以我需要告诉bash我可以从stdout它发送给我的 中解析哪些功能,以及我将如何向它发送键码和其他东西stdin,以便它也可以解析它们。

这是通过TERM=something环境变量完成的,我需要将其设置为某个值。如果我不设置它,那么各种程序开始抱怨:

$ mc
The TERM environment variable is unset!
Run Code Online (Sandbox Code Playgroud)

我发现我可以设置 TERMdumb来表示我的客户真的很有限。而且似乎我还是错过了一些东西。

$ export TERM=dumb
$ mc
Your terminal lacks the ability to clear the screen or position the cursor.
Run Code Online (Sandbox Code Playgroud)

从这里看dumb终端似乎没有这两个能力,但它还有什么能力呢?是否有关于它的规范或一些事实上的标准?

linux shell terminal go

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

scons中的env.Clone()不执行深层复制

在SCons脚本中,我创建了一个基础环境,我从中导出了其他环境.像这样的东西:

base = Environment()
base['CXXFLAGS'] += ['-DBOOST_HAS_PTHREAD', '-D__STDC_CONSTANT_MACROS', '-DFILELOG_MAX_LEVEL=4', '-Wall']

opt = base.Clone()
opt['CXXFLAGS'] += ['-DNDEBUG', '-O3']
Run Code Online (Sandbox Code Playgroud)

这样,我可以从基础环境创建更多环境(release/debug/instrumented/pgo).在SCons文档中,它说env.Clone()执行env的深层副本.但事实上它似乎没有用.因为在示例中,基本环境将应用-DNDEBUG和-O3标志.

我做错了什么?

编辑:这是真正的代码.这段代码中有两个打印语句,我认为它们应该打印相同的东西,但它们不会.输出如下:

# -*- coding: utf-8 -*-

import os.path
import glob

local_env = Environment()

local_env['CXXFLAGS'] += ['-DBOOST_HAS_PTHREAD', '-D__STDC_CONSTANT_MACROS', '-DFILELOG_MAX_LEVEL=4', '-Wall']
local_env.Append(LIBS = ['pthread', 'boost_thread', 'boost_filesystem', 'boost_program_options', 'boost_iostreams'])

opt = local_env.Clone()

opt['CXXFLAGS'] += ['-DNDEBUG', '-O3']

print opt['CXXFLAGS']

instr = opt.Clone()
instr['CXXFLAGS'] += ['-fprofile-arcs']
instr['LIBS'] += ['gcov']

print opt['CXXFLAGS']
Run Code Online (Sandbox Code Playgroud)

输出 :

|| scons: Reading SConscript files ...
|| -DBOOST_HAS_PTHREAD -D__STDC_CONSTANT_MACROS -DFILELOG_MAX_LEVEL=4 -Wall -DNDEBUG -O3 …
Run Code Online (Sandbox Code Playgroud)

scons

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

如何在C++中实现继承并解决错误"父类不可访问子类的基础"?

我是C++的新手.我喜欢在C++中探索继承的想法.每当我尝试编译以下代码时,我都会收到错误:

for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
D:\C Practice Files\Vehicle.cpp: In function `int main()':
D:\C Practice Files\Vehicle.cpp:26: error: `void Vehicle::setStationary_state(bool)' is inaccessible
D:\C Practice Files\Vehicle.cpp:141: error: within this context
D:\C Practice Files\Vehicle.cpp:141: error: `Vehicle' is not an accessible base of `Ship'

Execution terminated
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

 #include <iostream.h>
 #include <conio.h>
 using std::string;

 class Vehicle{

          private:           
               bool stationary_state;
               double max_speed;
               double min_speed;
               double weight;
               double volume;
               int expected_life;
               string fuel_type;
               string model; …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance

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

argparse和optparse的子命令替代

对于子命令,argparse/optparse是否有任何直观的替代方法?他们都很糟糕 - 这是疯狂的配置或疯狂的输出.

真实世界的例子(被盗,不想要):

>>> parser = argparse.ArgumentParser()
>>> subparsers = parser.add_subparsers(title='subcommands',
...                                    description='valid subcommands',
...                                    help='additional help')
>>> subparsers.add_parser('foo')
>>> subparsers.add_parser('bar')
>>> parser.parse_args(['-h'])
usage:  [-h] {foo,bar} ...

optional arguments:
  -h, --help  show this help message and exit

subcommands:
  valid subcommands

  {foo,bar}   additional help
Run Code Online (Sandbox Code Playgroud)

通缉:

>>> parser = cmdline.Parser(
...   tplheader='Usage: tool [command] [options]',
...   tplcommandhead='Available commands:',
...   tplfooter='Use \"tool help\" to get full list of supported commands.')
>>> parser.add('foo', help='foo.')
>>> parser.add('bar', help='bar.')
>>> parser.parse(['-h'])
Usage: tool …
Run Code Online (Sandbox Code Playgroud)

python optparse argparse

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

设置 `LC_ALL=C.UTF-8` 和 `LANG=C.UTF-8` 的后果

为了通过快速打包 Python 应用程序来修复该错误,我准备添加以下代码:

# I don't know what I am doing
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
Run Code Online (Sandbox Code Playgroud)

有很多文本似乎解释了 a 的LC_ALL=C作用(但不是LC_ALL=C.UTF-8or LANG=C.UTF-8),还有一大段文本解释了 bug 和 Python 行为。但都不适合我的小脑袋。通常我喜欢把头埋在血淋淋的技术细节上,但最近时间的压力让我变得相当无知

我只是想知道这句话的含义是什么This system supports the C.UTF-8 locale,如果我设置这些变量来切换到它会发生什么?(我猜是通过设置这些环境变量来实现的)

environment utf-8

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