小编Tod*_*rry的帖子

两个日期之间python的整数差异

我已经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 datetime date

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

使用简单的sqlite查询在python中令人困惑的AttributeError

当我在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 sqlite

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

并行文件处理中的python限制

我花了一周的时间来处理一些粗糙的文本文件 - 有些是在一亿行的范围内.

我用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.

我的问题是:如何从这个盒子中获得最快的处理但却没有引起这种"写入"错误?

python

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

结合tty的历史

在任何给定时间我都有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",从而使每个登录单独的历史记录分开,但可检索/可重新连接?

谢谢!

linux bash

5
推荐指数
1
解决办法
3252
查看次数

redis/python中的元组:可以存储,而不是检索

所以,我有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 redis

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

为什么python中的范围"停止"?

好的,给孩子们教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].

python range

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

为什么列表在Python中以持久的方式链接?

设置变量.另一个变量设置为第一个.第一个改变了价值.第二个没有.从一开始就是编程的本质.

>>> 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)

为什么是这样?

我如何防止这种情况发生 - 我希望alistblist(不可变的,如果你愿意的话)的变化不感兴趣?

python list immutability

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

向屏幕发送命令:“东西”的限制、换行符的怪癖

尝试通过“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)。

bash gnu-screen sh

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

用破折号在python中字符串化一个元组

我有一个元组,我想将字符串化为redis键.

我试过' - '.join但是输出不好 - >在字符串的每个字母之间划线.任何人都可以建议一个比我的字符串更好的功能+' - '+ string2 ...构造如下?

谢谢!

matchkey = (mdate, season, aseries, homeclub, awayclub, court)
mk = mdate + '-' + season + '-' aseries + '-' homeclub + '-' awayclub + '-' court
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

python ×7

bash ×2

date ×1

datetime ×1

gnu-screen ×1

immutability ×1

linux ×1

list ×1

range ×1

redis ×1

sh ×1

sqlite ×1