小编Ash*_*ppa的帖子

Python:防止fileinput添加换行符

我正在使用Python脚本来查找和替换给定目录的文本文件中的某些字符串.我正在使用该fileinput模块来简化查找和替换操作,即读取文件,替换文本并将其写回同一文件.

代码如下:

import fileinput
def fixFile(fileName):
    # Open file for in-place replace
    for line in fileinput.FileInput(fileName, inplace=1):
        line = line.replace("findStr", "replaceStr")
        print line  # Put back line into file
Run Code Online (Sandbox Code Playgroud)

问题是书面文件有:

  1. 行后插入一个空行.
  2. 行末尾的Ctrl-M字符.

如何防止这些额外的附属物插入文件?

python file-io

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

C++ STL:可以使用STL函数透明地使用数组吗?

我假设STL函数只能用于STL数据容器(比如vector),直到我看到这段代码:

#include <functional>
#include <iostream>
#include <numeric>
using namespace std;

int main()
{
    int a[] = {9, 8, 7};
    cerr << "Sum: " << accumulate(&a[0], &a[3], 0, plus<int>()) << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它编译并运行时没有任何警告或g ++错误,给出正确的输出和24.

是否允许 C++/STL 标准允许使用具有STL功能的数组?如果是,那么像数组这样的古老结构如何适应模板化迭代器,容器和函数的宏STL计划?此外,程序员应该注意这些用法中是否有任何警告或细节?

c++ arrays stl

22
推荐指数
3
解决办法
8766
查看次数

C++ Boost:BOOST_FOREACH有什么问题吗?

这个是Boost专家.程序员在进入之前是否需要了解其中的任何问题或细节,并将所有旧的C/C++样式循环替换为精益和平均的外观BOOST_FOREACH

(这个问题部分来源于.)

c++ boost loops

22
推荐指数
4
解决办法
8302
查看次数

C++:如何在函数返回值未使用时触发编译器错误?

假设我有一个规范化函数定义为:

Vec3f Vec3f::getNormalized() const {
   return (*this)/this->length();
}
Run Code Online (Sandbox Code Playgroud)

如果在没有存储它的返回值的情况下使用此函数,是否可能以某种方式创建编译时错误?;

v.getNormalized(); // which most definitely is a typo
Run Code Online (Sandbox Code Playgroud)

..代替..

v = v.getNormalized(); 
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors return-value

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

CUDA内核调用的"无效配置参数"错误?

这是我的代码:

int threadNum = BLOCKDIM/8;
dim3 dimBlock(threadNum,threadNum);
int blocks1 = nWidth/threadNum + (nWidth%threadNum == 0 ? 0 : 1);
int blocks2 = nHeight/threadNum + (nHeight%threadNum == 0 ? 0 : 1);
dim3 dimGrid;
dimGrid.x = blocks1;
dimGrid.y = blocks2;

//  dim3 numThreads2(BLOCKDIM);
//  dim3 numBlocks2(numPixels/BLOCKDIM + (numPixels%BLOCKDIM == 0 ? 0 : 1) );
perform_scaling<<<dimGrid,dimBlock>>>(imageDevice,imageDevice_new,min,max,nWidth, nHeight);
cudaError_t err = cudaGetLastError();
cudasafe(err,"Kernel2");
Run Code Online (Sandbox Code Playgroud)

这是我的第二个内核的执行,它在数据使用方面是完全独立的.BLOCKDIM是512,nWidth and nHeight也是512,cudasafe只是打印错误代码的相应字符串消息.代码的这一部分在内核调用之后发出配置错误.

什么可能会给出这个错误,任何想法?

cuda

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

IronPython:使用pyc.py编译的EXE无法导入模块"os"

我有一个简单的IronPython脚本:

# Foo.py
import os

def main():
    print( "Hello" )

if "__main__" == __name__:
    main()
Run Code Online (Sandbox Code Playgroud)

它运行正常并打印Hello如果我用IronPython运行它:

ipy Foo.py
Run Code Online (Sandbox Code Playgroud)

按照IronPython中给出的说明- 如何编译exe,我使用以下命令将此IronPython脚本编译为EXE:

ipy pyc.py /main:Foo.py /target:exe
Run Code Online (Sandbox Code Playgroud)

执行Foo.exe会出现此错误:

Unhandled Exception: IronPython.Runtime.Exceptions.ImportException: No module named os
   at Microsoft.Scripting.Runtime.LightExceptions.CheckAndThrow(Object value)
   at DLRCachedCode.__main__$1(CodeContext $globalContext, FunctionCode $functionCode)
   at IronPython.Compiler.OnDiskScriptCode.Run()
   at IronPython.Compiler.OnDiskScriptCode.Run(Scope scope)
   at IronPython.Runtime.PythonContext.InitializeModule(String fileName, ModuleContext moduleContext, ScriptCode scriptC
ode, ModuleOptions options)
Run Code Online (Sandbox Code Playgroud)

为什么找不到模块"os"?我该如何解决这个问题,这样我才能得到一个有效的EXE?

(请注意,这与IronPython无法导入模块操作系统的问题不同,因为如果我运行脚本,脚本工作正常ipy.exe.)

python ironpython

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

如何将numpy 2D数组与numpy 1D数组相乘?

两个数组:

a = numpy.array([[2,3,2],[5,6,1]])
b = numpy.array([3,5])
c = a * b
Run Code Online (Sandbox Code Playgroud)

我想要的是:

c = [[6,9,6],
     [25,30,5]]
Run Code Online (Sandbox Code Playgroud)

但是,我收到了这个错误:

ValueError: operands could not be broadcast together with shapes (2,3) (2)
Run Code Online (Sandbox Code Playgroud)

如何 nD数组乘以 1D数组,在哪里len(1D-array) == len(nD array)

python numpy

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

如何在Windows上打补丁?

给定(源)补丁文件,在Windows下的源文件上应用此补丁的最简单方法是什么?

一个GUI工具,我可以直观地比较未更改的源代码行将是很好的.

windows patch

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

LaTeX:如何查找命令所属的包?

这是一个简单的问题,我无法找到答案:

给定一个LaTeX 命令,我如何找出它所属或来自哪个

例如,给定\qquad水平间距命令,它来自哪个包?特别麻烦,因为它不包括任何包装!

search latex command

20
推荐指数
3
解决办法
4422
查看次数

C++:STL和Boost的替代方案?

C++是一种多范式语言,STLBoost是针对语言的功能范例而构建的.STL由容器(用于保存数据),迭代器(用于访问数据)和算法(用于操作数据的函数)组成.通过使用迭代器将算法函数应用于容器.作为副作用,这些方法不是容器类的一部分,而是完全独立的.(这避免了库编写者的冗余,但对于库用户来说却很痛苦.)

是否有STL/Boost的C++替代品,以更传统的面向对象的方式提供这样的容器?我正在寻找字符串,向量,链表,地图,树,哈希表等.容器应该易于继承和扩展.相比之下,从STL/Boost扩展类是一个非常糟糕的想法,这是他们的设计师的设计.

PS:请不要使用下面的回复空间来证明STL/Boost的优势.我很清楚他们!:-)

c++ boost stl

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