Python至less有五种格式化string的方法: In [1]: world = "Earth" # method 1a In [2]: "Hello, %s" % world Out[2]: 'Hello, Earth' # method 1b In [3]: "Hello, %(planet)s" % {"planet": world} Out[3]: 'Hello, Earth' # method 2a In [4]: "Hello, {0}".format(world) Out[4]: 'Hello, Earth' # method 2b In [5]: "Hello, {planet}".format(planet=world) Out[5]: 'Hello, Earth' In [6]: from string […]
我有一个类如下: class User: def __init__(self): self.data = [] self.other_data = [] def doSomething(self, source): // if source = 'other_data' how to access self.other_data 我想为doSomething的源variables传递一个string,并访问同名的类成员。 我试过getattr只适用于函数(从我可以告诉),以及有User扩展dict和使用self.__getitem__ ,但这也不起作用。 什么是最好的方法来做到这一点?
在Windows上, subprocess.Popen.terminate调用win32的TerminalProcess 。 但是,我看到的行为是我正在尝试终止的进程的subprocess仍在运行。 这是为什么? 如何确保stream程启动的所有subprocess都被终止?
JSON序列化自定义不可序列化对象的常规方法是json.JSONEncoder ,然后将自定义编码器传递给转储。 它通常是这样的: class CustomEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, foo): return obj.to_json() return json.JSONEncoder.default(self, obj) print json.dumps(obj, cls = CustomEncoder) 我想要做的是使用默认的编码器可序列化的东西。 我环顾四周,却找不到任何东西。 我的想法是,编码器会查看一些字段来确定json编码。 类似于__str__ 。 也许是一个__json__字段。 在Python中有这样的东西吗? 我想使我所做的一个模块类成为JSON可序列化给使用该包的每个人,而不用担心自己实现自己的[自定义]自定义编码器。
我有需要能够准确地find两个date之间的python的几个月。 我有一个解决scheme,但不是很好(如在优雅)或快速。 dateRange = [datetime.strptime(dateRanges[0], "%Y-%m-%d"), datetime.strptime(dateRanges[1], "%Y-%m-%d")] months = [] tmpTime = dateRange[0] oneWeek = timedelta(weeks=1) tmpTime = tmpTime.replace(day=1) dateRange[0] = tmpTime dateRange[1] = dateRange[1].replace(day=1) lastMonth = tmpTime.month months.append(tmpTime) while tmpTime < dateRange[1]: if lastMonth != 12: while tmpTime.month <= lastMonth: tmpTime += oneWeek tmpTime = tmpTime.replace(day=1) months.append(tmpTime) lastMonth = tmpTime.month else: while tmpTime.month […]
可能重复: 有效的方法来移动Python中的列表 我想通过任意数量的项目向右或向左旋转Python列表(后者使用负参数)。 像这样的东西: >>> l = [1,2,3,4] >>> l.rotate(0) [1,2,3,4] >>> l.rotate(1) [4,1,2,3] >>> l.rotate(-1) [2,3,4,1] >>> l.rotate(4) [1,2,3,4] 这可怎么办?
我有一个简单的Python脚本,它有一些循环运行的函数(我正在读取传感器)。 while True: print "Doing a function" 如果键盘被按下,我想打印“按键”。 在Python中做这个最简单的方法是什么? 我search了高和低。 我已经发现如何用pygame做到这一点,但我宁愿不这样做。 如果我不得不使用pygame,可能没有一个单独的窗口的应用程序? import pygame, time from pygame.locals import * pygame.init() screen = pygame.display.set_mode((640, 480)) pygame.display.set_caption('Pygame Keyboard Test') pygame.mouse.set_visible(0) while True: print "doing a function" for event in pygame.event.get(): if (event.type == KEYUP) or (event.type == KEYDOWN): print "key pressed" time.sleep(0.1)
Python的getattr()方法在您事先不知道某个属性的名称时非常有用。 这个function也可以在模板中派上用场,但是我从来没有想过要做到这一点。 是否有可以执行dynamic属性查找的内置标签或非内置标签?
这显然是简单的,但作为一个numpy纽伯我卡住了。 我有一个CSV文件,其中包含3列,国家,Office ID和该办事处的销售。 我想计算给定州内每个办公室的销售额百分比(各州百分比总和为100%)。 df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3, 'office_id': range(1, 7) * 2, 'sales': [np.random.randint(100000, 999999) for _ in range(12)]}) df.groupby(['state', 'office_id']).agg({'sales': 'sum'}) 这返回: sales state office_id AZ 2 839507 4 373917 6 347225 CA 1 798585 3 890850 5 454423 CO 1 819975 3 202969 5 614011 WA 2 […]
Python中的csv模块在涉及到UTF-8 / Unicode时无法正常工作。 我在Python文档和其他网页上发现了针对特定情况的片段,但您必须很好地理解您正在处理的编码以及使用合适的片段。 如何从Python 2.6中的“just works”中.csv文件中读取和写入string和Unicodestring? 还是这是Python 2.6的一个限制,没有简单的解决scheme?