Tag: python

Python中的负数模

我在python中发现了一些关于负数的奇怪行为: >>> a = -5 >>> a % 4 3 任何人都可以解释发生了什么事?

如何在Python 2.6中获得线程安全打印?

根据这些 文章,在Python中print不是线程安全的。 后面的文章提供了Python 3的变通方法。 如何在Python 2.6中获得线程安全print ?

在Python中添加一行到现有的文件

我需要添加一行到一个文本文件的第一行,它看起来像我可用的唯一选项是更多的代码行比我期望从Python。 像这样的东西: f = open('filename','r') temp = f.read() f.close() f = open('filename', 'w') f.write("#testfirstline") f.write(temp) f.close() 有没有更简单的方法? 另外,我更多地看到这个双手柄的例子比打开一个单独的手柄来读写('r +') – 为什么呢?

Python 3将范围转到列表

我正在试着制作一个1-1000数字。 显然,这将是讨厌的写/读,所以我试图做一个范围内的列表。 在Python 2中似乎是这样的: some_list = range(1,1000) 会工作,但在Python 3中,范围类似于Python 2的xrange ? 任何人都可以提供一些见解?

拦截正在运行的subprocess的stdout

如果这是我的subprocess: import time, sys for i in range(200): sys.stdout.write( 'reading %i\n'%i ) time.sleep(.02) 这是控制和修改子stream程输出的脚本: import subprocess, time, sys print 'starting' proc = subprocess.Popen( 'c:/test_apps/testcr.py', shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE ) print 'process created' while True: #next_line = proc.communicate()[0] next_line = proc.stdout.readline() if next_line == '' and proc.poll() != None: break sys.stdout.write(next_line) sys.stdout.flush() print 'done' 为什么readline和communicate等待进程完成运行? 有一个简单的方法来实时传递(和修改)subprocess的标准输出吗? 顺便说一句,我已经看到了这一点 […]

如何在Python脚本中运行Scrapy

我是Scrapy的新手,我正在寻找一种从Python脚本运行它的方法。 我发现有两个来源解释这一点: http://tryolabs.com/Blog/2011/09/27/calling-scrapy-python-script/ http://snipplr.com/view/67006/using-scrapy-from-a-script/ 我不知道我应该把我的蜘蛛代码,以及如何从主函数调用它。 请帮忙。 这是示例代码: # This snippet can be used to run scrapy spiders independent of scrapyd or the scrapy command line tool and use it from a script. # # The multiprocessing library is used in order to work around a bug in Twisted, in which you cannot restart an already […]

Python认同互斥组

我需要的是: pro [-a xxx | [-b yyy -c zzz]] 我试过这个,但不起作用。 有人能帮我吗? group= parser.add_argument_group('Model 2') group_ex = group.add_mutually_exclusive_group() group_ex.add_argument("-a", type=str, action = "store", default = "", help="test") group_ex_2 = group_ex.add_argument_group("option 2") group_ex_2.add_argument("-b", type=str, action = "store", default = "", help="test") group_ex_2.add_argument("-c", type=str, action = "store", default = "", help="test") 谢谢!

Python在函数参数中裸露星号

函数参数中的星号是什么? 当我看着泡菜模块,我看到这个:(http://docs.python.org/3.3/library/pickle.html#pickle.dump) pickle.dump(obj, file, protocol=None, *, fix_imports=True) 我知道前面参数的单个和双重星号(对于可变数量的参数),但是这并没有什么先例。 我很确定这与泡菜无关。 这可能只是这种情况的一个例子。 我只是在把这封信发给口译员时才知道它的名字: >>> def func(*): … pass … File "<stdin>", line 1 SyntaxError: named arguments must follow bare * 如果有关系,我使用python 3.3.0。

我如何在Python中创build一组集合?

我正在尝试在Python中创build一组集合。 我无法弄清楚如何去做。 从空集xx : xx = set([]) # Now we have some other set, for example elements = set([2,3,4]) xx.add(elements) 但是我明白了 TypeError: unhashable type: 'list' 要么 TypeError: unhashable type: 'set' 是否有可能在Python中有一套? 我正在处理大量集合集合,我希望能够不必处理重复集合(集合A1,A2,… B的集合B,如果Ai = Aj,An将“取消”两个集合)

为什么在Python中的线程内调用sys.exit()不会退出?

这可能是一个愚蠢的问题,但我testing了一些关于Python的假设,我很困惑,为什么下面的代码片段在线程中调用时不会退出,而是在主线程中调用时退出。 import sys, time from threading import Thread def testexit(): time.sleep(5) sys.exit() print "post thread exit" t = Thread(target = testexit) t.start() t.join() print "pre main exit, post thread exit" sys.exit() print "post main exit" sys.exit()的文档声明调用应该从Python中退出。 我可以从这个程序的输出中看到“post thread exit”从来没有被打印,但是主线程在线程调用退出之后仍然继续运行。 是为每个线程创build一个单独的解释器实例,并且对exit()的调用正在退出单独的实例? 如果是这样,线程实现如何pipe理对共享资源的访问? 如果我确实想从线程中退出程序(不是我真正想要的,但只是这样理解)呢?