小编Chr*_*ris的帖子

php String Concatenation,Performance

在Java和C#等语言中,字符串是不可变的,并且一次构建一个字符串可能在计算上很昂贵.在所述语言中,有一些库类可以降低这种成本,例如C#System.Text.StringBuilder和Java java.lang.StringBuilder.

php(4或5;我对两者都感兴趣)是否共享此限制?如果是这样,是否有类似的解决方案可用?

php string concatenation

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

将StreamReader返回到Beginning

我正在逐行读取文件,我希望能够通过调用方法重新启动读取Rewind().

我怎样才能操纵我的System.IO.StreamReader和/或它的底层System.IO.FileStream来重新阅读文件?

我有一个聪明的想法,FileStream.Seek(long, SeekOffset)用来移动文件,但它没有影响封闭System.IO.StreamReader.我可以Close()重新分配流和读者参考,但我希望有更好的方法.

.net c#

64
推荐指数
4
解决办法
8万
查看次数

Ruby构造函数和异常

Ruby的新手,我试图找出用于将某些整数值限制为类的构造函数的习惯用法.

从我到目前为止所做的,如果我引发异常initialize(),对象仍然被创建但是将处于无效状态(例如,nil实例变量中的某些值).我不太明白我应该如何限制这些值,而不会进入看起来不必要的大步骤,比如限制访问new().

所以我的问题是,通过什么机制可以限制对象实例化的值的范围?

ruby constructor exception

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

Fabfiles与命令行参数

是否有一种干净的方法让您的fabfile接受命令行参数?我正在为一个工具编写一个安装脚本,我希望能够通过命令行指定一个可选的目标目录.

我写了一些代码来测试如果我传入一些命令行参数会发生什么:

# fabfile.py
import sys

def install():
    _get_options()

def _get_options():
    print repr(sys.argv[1:])
Run Code Online (Sandbox Code Playgroud)

几个运行:

$ fab install
['install']

Done.
$ fab install --electric-boogaloo
Usage: fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',...] ...

fab: error: no such option: --electric-boogaloo
Run Code Online (Sandbox Code Playgroud)

python fabric

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

如何设置多个单元测试共享的资源?

在Python中,如何为一整套单元测试设置一个设置(可能包含昂贵的函数调用)?

例:

import unittest

class Test1(unittest.TestCase):
    def setUp(self):
        print "expensive call"
    def test1(self):
        self.assertEqual(1, 1)
    def test2(self):
        self.assertEqual(1, 1)

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

将运行两次昂贵的电话:

$ python unittest.py
expensive call
.expensive call
.
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK
Run Code Online (Sandbox Code Playgroud)

如何更改它,以便只进行一次昂贵的调用,并且所有测试都可以访问其资源?

更新:我使用的是Python 2.6.

python unit-testing python-2.6

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

如何关闭图像?

我正在尝试获取图像文件,对其执行一些操作并将更改保存回原始文件.我遇到的问题是覆盖原始图像; 似乎没有一种可靠的方法来释放句柄filename.

我需要将此内容保存回同一文件,因为外部进程依赖于该文件名保持不变.

def do_post_processing(filename):
    image = Image.open(str(filename))
    try:
        new_image = optimalimage.trim(image)
    except ValueError as ex:
        # The image is a blank placeholder image.
        new_image = image.copy()
    new_image = optimalimage.rescale(new_image)
    new_image.save('tmp.tif')
    del image

    os.remove(str(filename))
    os.rename('tmp.tif', str(filename))
Run Code Online (Sandbox Code Playgroud)

del image工作,直到我添加了异常处理程序,我在其中制作了图像的副本.我也试过访问close()Image的一个属性with image,但没有成功.

python python-imaging-library

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

帮助编写批处理脚本来解析CSV文件并输出文本文件

我正在努力编写一个可以读取CSV文件的批处理脚本,如下所示

Name:, City:, Country:
Mark, London, UK
Ben, Paris, France
Tom, Athens, Greece
Run Code Online (Sandbox Code Playgroud)

CSV文件中将有一个标题行.它应输出到文本文件,如下所示:

Name:Mark
City:London
Country:UK

Name:Ben
City:Paris
Country:France

Name:Tom
City:Athens
Country:Greece
Run Code Online (Sandbox Code Playgroud)

上述输出中的字段分隔符(:)应该在标题行本身中提供.所以我需要做的就是连接字段标题及其值.

此CSV文件中的列数不固定,因此脚本不应限制为3个令牌.请帮忙!

windows csv text record batch-file

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

列表成员资格的细节

Python(特别是2.6.4)如何确定列表成员资格?我做了一些测试,看看它做了什么:

def main():
    obj = fancy_obj(arg='C:\\')
    needle = (50, obj)
    haystack = [(50, fancy_obj(arg='C:\\')), (1, obj,), needle]

    print (1, fancy_obj(arg='C:\\'),) in haystack
    print needle in haystack

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

产量:

False
True
Run Code Online (Sandbox Code Playgroud)

这告诉我Python可能正在检查对象引用,这是有道理的.有什么更明确的我可以看一下吗?

python list

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

在Excel 2007中自动执行文本导入

我正在尝试使用VBA编写Excel宏来自动将CSV文本导入电子表格,但我以前从未这样做过.我需要确保每次出现的文本导入向导都以相同的方式运行.我需要采取的步骤是:

  1. 使用打开的文件对话框打开文件
  2. 将类型设置为分隔
  3. 将分隔符设置为逗号
  4. 将要导入的所有列设置为Text
  5. 自动适合所有列

我似乎无法浏览显示如何执行这些操作(如打开文件)的文档.即使能够从那里开始也会有所帮助.

excel vba excel-vba

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

在方法声明中不可能引用自我?

我想编写一个带有参数的方法,默认为成员变量,如下所示:

def method(self, arg1=0, arg2=self.member):
Run Code Online (Sandbox Code Playgroud)

显然这是不允许的.我应该以不同的方式编写它,或者使用值arg2来表示何时使用成员变量?

python argument-passing

0
推荐指数
1
解决办法
105
查看次数