小编tzo*_*zot的帖子

为什么在Windows上创建比Linux更昂贵的新流程?

我听说在Windows机器上创建一个新进程比在Linux上更昂贵.这是真的?有人可以解释为什么它更昂贵的技术原因,并为这些原因背后的设计决策提供任何历史原因?

linux windows performance

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

如何在Unix(或Windows)中使用(最好是未命名的)管道将一个进程的stdout发送到多个进程?

我想将进程proc1的stdout重定向到两个进程proc2和proc3:

         proc2 -> stdout
       /
 proc1
       \ 
         proc3 -> stdout
Run Code Online (Sandbox Code Playgroud)

我试过了

 proc1 | (proc2 & proc3)
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用,即

 echo 123 | (tr 1 a & tr 1 b)
Run Code Online (Sandbox Code Playgroud)

 b23
Run Code Online (Sandbox Code Playgroud)

stdout而不是

 a23
 b23
Run Code Online (Sandbox Code Playgroud)

unix windows bash shell pipe

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

那么"来自__future__ import barry_as_FLUFL"到底是做什么的呢?

我知道这是一个内心的笑话,意味着留下来(就像" from __future__ import braces"),但究竟是什么呢?

python operators

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

将带有BOM的UTF-8转换为UTF-8,在Python中没有BOM

这里有两个问题.我有一组文件,通常是带有BOM的UTF-8.我想将它们(理想情况下)转换为没有BOM的UTF-8.似乎codecs.StreamRecoder(stream, encode, decode, Reader, Writer, errors)会处理这个问题.但我真的没有看到任何关于使用的好例子.这是处理这个的最佳方法吗?

source files:
Tue Jan 17$ file brh-m-157.json 
brh-m-157.json: UTF-8 Unicode (with BOM) text
Run Code Online (Sandbox Code Playgroud)

此外,如果我们能够处理不同的输入编码而不明确地知道(看到ASCII和UTF-16),那将是理想的.看起来这应该都是可行的.有没有可以将任何已知的Python编码和输出作为UTF-8而无BOM的解决方案?

从下面编辑1提出的sol'n(谢谢!)

fp = open('brh-m-157.json','rw')
s = fp.read()
u = s.decode('utf-8-sig')
s = u.encode('utf-8')
print fp.encoding  
fp.write(s)
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

IOError: [Errno 9] Bad file descriptor
Run Code Online (Sandbox Code Playgroud)

新闻快报

我在评论中被告知错误是我用模式'rw'而不是'r +'/'r + b'打开文件,所以我最终应该重新编辑我的问题并删除已解决的部分.

python byte-order-mark utf-8 utf-16

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

创建DLL时导出所有符号

使用VS2005,我想创建一个DLL并自动导出所有符号,而无需在任何地方添加__declspec(dllexport),也无需手工创建.def文件.这是一种方法吗?

c++ windows visual-studio-2005 visual-studio

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

是否有一个看起来像"关键"图标的Unicode字形?

Unicode有一百万个类似图标的字形,但它们并不总是很容易搜索,因为我并不总是知道它们的样子.

是否有一个看起来像"密钥"的Unicode字形?或者是否有一个符号在数据库圈中用来表示"主键",它用Unicode?

unicode icons key glyph

54
推荐指数
4
解决办法
7万
查看次数

忽略Python字符串中的大小写

在Python中比较字符串的最简单方法是什么,忽略大小写?

当然可以做(str1.lower()<= str2.lower())等,但是这创建了两个额外的临时字符串(具有明显的alloc/gc开销).

我想我正在寻找相当于C的stricmp().

[请求更多上下文,所以我将用一个简单的例子来证明:]

假设您要对looong字符串列表进行排序.你只需要做List.sort().这是O(n*log(n))字符串比较,没有内存管理(因为所有字符串和列表元素都是某种智能指针).你很快乐.

现在,您想要做同样的事情,但忽略这种情况(让我们简化并说所有字符串都是ascii,因此可以忽略区域设置问题).您可以执行List.sort(key = lambda s:s.lower()),但是每次比较会导致两个新的分配,加上垃圾收集器与重复(降低)字符串的负担.每个这样的存储器管理噪声比简单的字符串比较慢几个数量级.

现在,使用就地stricmp()函数,你可以:theList.sort(cmp = stricmp),它与theList.sort()一样快和内存友好.你又开心了.

问题是任何基于Python的不区分大小写的比较涉及隐式字符串重复,所以我期望找到基于C的比较(可能在模块字符串中).

找不到那样的东西,因此问题就在这里.(希望这澄清了这个问题).

python string case-insensitive

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

2GB USB驱动器上的版本控制

对于我的学校工作,我做了很多切换计算机(从实验室到笔记本电脑到图书馆).我有点想把这个代码置于某种版本控制之下.当然问题是我不能总是在我使用的计算机上安装其他软件.我可以在拇指驱动器上保留任何类型的版本控制系统吗?我有一个2GB的驱动器,但我可以在必要时获得更大的驱动器.

我正在做的项目并不是特别大.

编辑: 这需要在Windows下工作.

编辑II: Bazaar最终成为我选择的.如果你选择TortoiseBzr,那就更好了.

windows version-control usb-drive

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

有没有办法在C#中执行循环位移?

我知道以下是真的

int i = 17; //binary 10001
int j = i << 1; //decimal 34, binary 100010
Run Code Online (Sandbox Code Playgroud)

但是,如果你换得太远,那些位就会掉线.发生这种情况的原因与您正在使用的整数大小有关.

有没有办法执行移位,以便位旋转到另一侧?我正在寻找一个单独的操作,而不是for循环.

c# bit-manipulation

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

如何匹配sed中的单引号

如果表达式用单引号括起来,如何匹配sed中的单引号:

sed -e '...'
Run Code Online (Sandbox Code Playgroud)

例如需要匹配此文本:

'foo'
Run Code Online (Sandbox Code Playgroud)

bash shell escaping

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