我已经RTFM并在这里阅读了很多关于这个的问题和答案,并且很高兴昨天使用strftime和strptime,所以我发誓这应该有用,但它不是....
我只想要一个整数.不是"timedelta对象".不是"知道但可以清洗的对象"(参见我的RTFM).不是一个元组.不是字典.只是一个简单的怪异整数,所以我可以使用if语句和分支,并开心.请带上你的智慧之光,谢谢.
这就是我所拥有的
...
import datetime
mdate = "2010-10-05"
rdate = "2010-10-05"
mdate1 = datetime.strptime(mdate, "%Y-%m-%d")
rdate1 = datetime.strptime(rdate, "%Y-%m-%d")
delta = datetime.timedelta.days(mdate1 - rdate1)
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
(error hits in the 'mdate1..." line above)
Run Code Online (Sandbox Code Playgroud)
并且,这并不意味着我的三角洲线将会起作用 - 请看一下.
当我在python中调用一个函数来执行查询时,我遇到的错误令我感到困惑和沮丧.我已经检查过以确保我没有标签而不是间隔缩进(检查不明确).我遵循了这里使用的约定:http://zetcode.com/db/sqlitepythontutorial/,这里:如何用Python检查SQLite中是否存在行?
任何人都可以看到为什么这个看起来很好的代码会抛出错误?我现在是代码盲.谢谢!
错误:
File "paddle-csv-import.py", line 23, in getscore
cur1.execute("SELECT pts FROM matchpoints WHERE s1 =? and s2 = ? and \
AttributeError: 'builtin_function_or_method' object has no attribute 'execute'
Run Code Online (Sandbox Code Playgroud)
相关代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
import sqlite3 as lite
import trueskill as ts
import sys
import csv
import datetime
#global declarations
# global variables
season = '1011'
unknum = 0
# global functions
def getscore(sets):
con1 = None
con1 = lite.connect('match_setup.db') …Run Code Online (Sandbox Code Playgroud) 我花了一周的时间来处理一些粗糙的文本文件 - 有些是在一亿行的范围内.
我用python来打开,解析,转换和输出这些文件.我一直在使用SSD在一个巨大的8处理器,16核EC2单元上并行运行这些作业,通常是6 -8.
我会说0.001%的写入输出不好,如:
Expected output: |1107|2013-01-01 00:00:00|PS|Johnson|etc.
Actual output: |11072013-01-01 00:00:00|PS|Johnson|etc.
or |1107|2013-01-01 :00:00|PS|Johnson
Run Code Online (Sandbox Code Playgroud)
几乎总是,问题不是GIGO,而是Python无法编写分隔符或日期字段的一部分.因此,我假设我使用这些作业重载SSD,或者说计算机无法根据驱动器的写入争用来限制python.
我的问题是:如何从这个盒子中获得最快的处理但却没有引起这种"写入"错误?
在任何给定时间我都有3次登录到同一台服务器.当然,我经常使用屏幕,但假设这个目的允许我有:
1 session running something
1 session looking at output
1 session shuffling files to/from various places
Run Code Online (Sandbox Code Playgroud)
如果在任何时候我失去了所有三个连接,我会丢失2/3的历史记录,因为当我重新登录时,我从三个连接中的随机1中获取历史记录.
有没有办法阻止这个并将所有三个历史文件合并为1?
或者,有没有办法将每个登录声明为"ttyN",从而使每个登录单独的历史记录分开,但可检索/可重新连接?
谢谢!
所以,我有redis使用python - 令人兴奋!
我需要存储一个元组并在以后检索它/解析它.下面的构造不起作用,我认为因为返回的元组被引用 - 它的两端都有引号.
在我看来,引号表明它实际上不是一个元组,而是一个字符串.
那么有谁知道如何让redis实际返回一个工作元组?谢谢!
>>> tup1 = ('2011-04-05', 25.2390232323, 0.32093240923490, 25.239502352390)
>>> r.lpush('9999', tup1)
1L
>>> r.lpop('9999')
"('2011-04-05', 25.2390232323, 0.3209324092349, 25.23950235239)"
>>> v = r.lpop('9999')
>>> test=v[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud) 好的,给孩子们教python.我们刚写了第一个小程序:
b = 0
for a in range (1, 10)
b = b + 1
print a, b
Run Code Online (Sandbox Code Playgroud)
在9,9停止.他们问"为什么会这样",我不能说我知道答案.
我的代码总是涉及文件,我的"读取行"不能阻止一行短路,所以我实际上并不知道.在数学符号中,这种行为将是[1,10).从技术上(1,10)来说2,3,4,5,6,7,8,9,确实是我想要的[1,10].
设置变量.另一个变量设置为第一个.第一个改变了价值.第二个没有.从一开始就是编程的本质.
>>> a = 1
>>> b = a
>>> b = b - 1
>>> b
0
>>> a
1
Run Code Online (Sandbox Code Playgroud)
然后我将它扩展到Python列表.声明并附加列表.宣布另一个列表与第一个列表相同.第二个列表中的值发生变化.神秘的是,第一个列表中的值虽然没有直接作用,但也会发生变化.
>>> alist = list()
>>> blist = list()
>>> alist.append(1)
>>> alist.append(2)
>>> alist
[1, 2]
>>> blist
[]
>>> blist = alist
>>> alist.remove(1)
>>> alist
[2]
>>> blist
[2]
>>>
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
我如何防止这种情况发生 - 我希望alist对blist(不可变的,如果你愿意的话)的变化不感兴趣?
尝试通过“stuff”选项将长命令字符串传递到屏幕。当字符串很短并且存在于 bash 中时,在许多脚本中成功完成此操作,如下所示:
screen -d -m -S worker
screen -S worker -X -p 0 stuff $'/usr/bin/env python3 /root/worker.py\n'
Run Code Online (Sandbox Code Playgroud)
在本例中,我正在从文件中读取命令。我可以将 '\n' 附加到该文件,但 $ () 构造函数会吃掉换行符。我尝试过 printf、ISF= 和许多排列,但在我可以保留换行符的地方,不知何故该命令不会显示在屏幕上。
GEO_COMMAND=/foo/geo_command.txt
screen -S worker -X -p 0 stuff printf '%\n' "$GEO_COMMAND"
or
screen -S worker -X -p 0 stuff $GEO_COMMAND
Run Code Online (Sandbox Code Playgroud)
GEO_COMMAND: ''foo -bar -geo1 -geo2 -blah -keys ..... 160 个字符后 ...; /root/finish_job.sh\n '
答案在下面突出显示,为后代添加此内容:
screen 'stuff' 选项不喜欢大命令,并且对于换行符非常特殊。
下面的评论/答案解决了可靠的换行问题,但要粘贴/执行大型命令,答案是使用“readreg”通过命令读取文本文件,然后使用第二个命令“paste”将其传递到屏幕,如下所示如下所示。
这种方法不需要尾随换行符,不需要您用引号将命令(在文件中)括起来,并且也接受传导命令(; /foo/bar/sh)。
我有一个元组,我想将字符串化为redis键.
我试过' - '.join但是输出不好 - >在字符串的每个字母之间划线.任何人都可以建议一个比我的字符串更好的功能+' - '+ string2 ...构造如下?
谢谢!
matchkey = (mdate, season, aseries, homeclub, awayclub, court)
mk = mdate + '-' + season + '-' aseries + '-' homeclub + '-' awayclub + '-' court
Run Code Online (Sandbox Code Playgroud)