小编xor*_*yst的帖子

在Python中,如何迭代一个迭代器然后另一个?

我想迭代两个不同的迭代器,如下所示:

file1 = open('file1', 'r')
file2 = open('file2', 'r')
for item in one_then_another(file1, file2):
    print item
Run Code Online (Sandbox Code Playgroud)

我希望打印file1的所有行,然后是file2的所有行.

我想要通用的东西,因为迭代器可能不是文件,这只是一个例子.我知道我可以这样做:

for item in [file1]+[file2]:
Run Code Online (Sandbox Code Playgroud)

但这会将两个文件都读入内存,我宁愿避免使用.

python iteration file

49
推荐指数
3
解决办法
2850
查看次数

如何从多个脚本构建单个python文件?

我有一个简单的python脚本,它导入我编写的各种其他模块(等等).由于我的环境,我的PYTHONPATH很长.我也在使用Python 2.4.

我需要做的是以某种方式打包我的脚本和所有不属于标准python的依赖项,以便我可以将单个文件通过电子邮件发送到我想要执行它的另一个系统.我知道python的目标版本是相同的,但它在linux上,我在Windows上.否则我只使用py2exe.

理想情况下,我想发送一个.py文件以某种方式嵌入所有必需的模块,但我决定自动构建一个zip,我只需解压缩,所需的模块都在一个目录中.

我已经看过各种包装解决方案了,但我似乎无法找到合适的方法.我错过了什么吗?

[编辑]我似乎很不清楚我在追求什么.我基本上在寻找像py2exe这样的东西,它会从给定的python脚本生成一个文件(或2个文件),自动包含所有导入的模块.

例如,如果我有以下两个文件:

[\foo\module.py]
def example():
    print "Hello"

[\bar\program.py]
import module
module.example()
Run Code Online (Sandbox Code Playgroud)

我跑:

cd \bar
set PYTHONPATH=\foo
program.py
Run Code Online (Sandbox Code Playgroud)

然后它会工作.我想要的是能够说:

magic program.py
Run Code Online (Sandbox Code Playgroud)

并最终得到一个文件,或者可能是一个文件和一个zip,然后我可以复制到linux并运行.我不想在目标linux系统上安装我的模块.

python

31
推荐指数
5
解决办法
3万
查看次数

我可以在Python中迭代一个类吗?

我有一个类在类变量中跟踪它的实例,如下所示:

class Foo:
    by_id = {}

    def __init__(self, id):
        self.id = id
        self.by_id[id] = self
Run Code Online (Sandbox Code Playgroud)

我希望能够做的是迭代现有的类实例.我可以这样做:

for foo in Foo.by_id.values():
    foo.do_something()
Run Code Online (Sandbox Code Playgroud)

但它看起来像这样整洁:

for foo in Foo:
    foo.do_something()
Run Code Online (Sandbox Code Playgroud)

这可能吗?我尝试定义一个类方法__iter__,但这没有用.

python

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

py2exe的跨平台替代品

py2exe很棒,只要我想打包一个python程序在Windows系统上运行,我就会使用它.

我的问题是,是否有一个等效的工具,我可以用来在Windows上打包程序,但我可以在Linux上运行?

python py2exe

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

如何在空格上拆分字符串并保留字的偏移量和长度

我需要将一个字符串拆分成单词,还要得到单词的起始和结束偏移量.因此,例如,如果输入字符串是:

input_string = "ONE  ONE ONE   \t TWO TWO ONE TWO TWO THREE"
Run Code Online (Sandbox Code Playgroud)

我想得到:

[('ONE', 0, 2), ('ONE', 5, 7), ('ONE', 9, 11), ('TWO', 17, 19), ('TWO', 21, 23),
 ('ONE', 25, 27), ('TWO', 29, 31), ('TWO', 33, 35), ('THREE', 37, 41)]
Run Code Online (Sandbox Code Playgroud)

我有一些使用input_string.split执行此操作的代码并调用.index,但速度很慢.我尝试通过手动迭代字符串来编写代码,但这仍然比较慢.有没有人有这个快速算法?

这是我的两个版本:

def using_split(line):
    words = line.split()
    offsets = []
    running_offset = 0
    for word in words:
        word_offset = line.index(word, running_offset)
        word_len = len(word)
        running_offset = word_offset + word_len
        offsets.append((word, word_offset, running_offset - 1))

    return offsets

def manual_iteration(line):
    start …
Run Code Online (Sandbox Code Playgroud)

python string

12
推荐指数
3
解决办法
3336
查看次数

如何将模块导入为__main__?

我有一个平常的模块

if __name__ == '__main__':
    do stuff...
Run Code Online (Sandbox Code Playgroud)

成语.

我想从另一个模块导入它,并欺骗它运行该代码.有没有办法做到这一点?

我应该提一下,由于我不会进入这里的原因,我无法更改导入模块中的代码.我需要以某种方式修改导入过程,以便在导入时它的名称是主要的,可能使用ihooks或类似的.

python

12
推荐指数
3
解决办法
4073
查看次数

用Excel'日期'格式写xlwt日期

我正在使用xlwt制作.xls电子表格,我需要创建日期单元格.

我已经编写了数字,并设置数字格式字符串使它们看起来像日期,但关键的是它们实际上并没有写为日期 - 如果你在Excel中格式化单元格,它是一个"自定义"类别而不是"约会"一,这很重要.

我可以让xlwt实际上写"日期"单元格吗?

python xlwt

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

如何在多个Python脚本运行中获得组合代码覆盖率

我有一个python程序,通过使用不同的输入运行它几次,并将输出与参考结果进行比较来测试.

我想得到所有测试的代码覆盖率,所以我可以看看是否有额外的输入集我应该用来获得完整的覆盖率.我看过覆盖模块,但无法弄清楚我是如何做到这一点的.

有线索吗?

python code-coverage python-coverage

10
推荐指数
1
解决办法
3627
查看次数

如何使用Python上的Omniorb通过ssh隧道连接到Corba服务器

我有一些使用Omniorb连接到corba服务器的Python代码,一切正常.

现在,我希望能够通过创建ssh隧道连接到防火墙后面的服务器,但它无法正常工作.

据我所知,从wireshark跟踪,服务器将我重定向到它的IP地址 - 这当然是我无法达到的本地网络地址.

有没有办法处理这个并告诉服务器不要重定向我的客户端?我无法修改服务器,也无法更改其IP等.或者我可以修改我的客户端以伪造它的连接,以便服务器接受它吗?

python corba omniorb

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

将列表有效地合并到稀疏列表中

我有两个清单:

a = [None, None, 1, None, 4, None, None, 5, None]
b = [7,8,2,3,6,9]
Run Code Online (Sandbox Code Playgroud)

我想合并它们,要么创建一个新列表,要么只是通过用b中的值填充Nones来更新a,所以

a = [7,8,1,2,4,3,6,5,9]
Run Code Online (Sandbox Code Playgroud)

这样做最有效的方法是什么?

对于扩展,我会想要对b的每个排列都这样做.这是否允许简化技术?

python performance list

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