我正在编写一个程序来解析10个网站,查找数据文件,保存文件,然后解析它们以生成可以在NumPy库中使用的数据.有吨的错误该文件通过遇到不良链接,不好的XML,缺项,其他的事情我还没有进行分类.我最初制作这个程序来处理这样的错误:
try:
do_stuff()
except:
pass
Run Code Online (Sandbox Code Playgroud)
但现在我想记录错误:
try:
do_stuff()
except Exception, err:
print Exception, err
Run Code Online (Sandbox Code Playgroud)
请注意,这是打印到日志文件以供以后查看.这通常会打印非常无用的数据.我想要的是打印错误触发时打印的完全相同的行,没有try-except拦截异常,但我不希望它暂停我的程序,因为它嵌套在一系列for循环中,我想看完成了.
我注意到今天我想解释一些奇怪的东西.我不是100%肯定如何将这个问题作为一个问题,所以谷歌是不可能的.由于某些奇怪的原因,日志记录模块无法访问模块logging.handlers.如果你不相信我,请亲自尝试一下:
>>> import logging
>>> logging.handlers
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'handlers'
>>> import logging.handlers
>>> logging.handlers
<module 'logging.handlers' from '/usr/lib/python2.6/logging/handlers.pyc'>
Run Code Online (Sandbox Code Playgroud)
谁能解释为什么会这样?
基本上我想做与这个家伙做的相反的事情......呵呵.
我有一个程序告诉我它有多远.
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
Run Code Online (Sandbox Code Playgroud)
因此,如果len(some_list)为50,我会将最后一行打印50次.我想打印一行并不断更新该行.我知道我知道这可能是你整天都会读到的最蹩脚的问题.我只是无法弄清楚我需要在谷歌中找到答案的四个字.
更新!我试过mvds的建议哪个看起来没错.新代码
print percent_complete," \r",
Run Code Online (Sandbox Code Playgroud)
完成百分比只是一个字符串(我现在第一次抽象,我试图成为文字).现在的结果是它运行程序,直到程序结束后才打印ANYTHING,然后在一行且只有一行打印"100%完成".
如果没有回车(但是使用逗号,mvds的一半建议),它将一直打印到最后.然后打印:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
Run Code Online (Sandbox Code Playgroud)
等等.所以现在新的问题是用逗号它不会打印直到程序完成.
使用回车并且没有逗号,它的行为与两者都不完全相同.
任何人都知道一个很好的网络服务或api我可以用来批量日出/日落时间?到目前为止,我发现的每件事只能一次给出一天,或者对可以使用的日期有限制.
我想完成这个人做的事情:
但是我需要优化它以超快速运行.简而言之,我想要一个时间序列,并告诉每次它越过零(改变符号).我想记录过零点之间的时间.由于这是真实的数据(32位浮点数),我怀疑我每个都有一个正好为零的数字,所以这并不重要.我目前有一个计时程序,所以我会把你的结果计算在内,看看谁赢了.
我的解决方案给出(微秒):
open data 8384
sign data 8123
zcd data 415466
Run Code Online (Sandbox Code Playgroud)
如您所见,过零检测器是缓慢的部分.这是我的代码.
import numpy, datetime
class timer():
def __init__(self):
self.t0 = datetime.datetime.now()
self.t = datetime.datetime.now()
def __call__(self,text='unknown'):
print text,'\t',(datetime.datetime.now()-self.t).microseconds
self.t=datetime.datetime.now()
def zcd(data,t):
sign_array=numpy.sign(data)
t('sign data')
out=[]
current = sign_array[0]
count=0
for i in sign_array[1:]:
if i!=current:
out.append(count)
current=i
count=0
else: count+=1
t('zcd data')
return out
def main():
t = timer()
data = numpy.fromfile('deci.dat',dtype=numpy.float32)
t('open data')
zcd(data,t)
if __name__=='__main__':
main()
Run Code Online (Sandbox Code Playgroud) 我正在将一个遗留项目切换为自动生成 alembic 迁移,它有一些 sqlalchemy 无法识别的索引。当我运行时,alembic revision --autogenerate migration_name会创建一个空迁移(因为我已经解决了所有其他不一致问题),但我收到 8 个警告,例如:
/project/.venv/lib/python3.6/site-packages/sqlalchemy/dialects/postgresql/base.py:3328: SAWarning: Skipped unsupported reflection of expression-based index idx_name
"expression-based index %s" % idx_name
Run Code Online (Sandbox Code Playgroud)
在 postgres 中,我查找索引定义,如下所示:
/project/.venv/lib/python3.6/site-packages/sqlalchemy/dialects/postgresql/base.py:3328: SAWarning: Skipped unsupported reflection of expression-based index idx_name
"expression-based index %s" % idx_name
Run Code Online (Sandbox Code Playgroud)
读完这篇文章后,我尝试在模型定义之后添加索引并添加到__table_args__ .
mydb=# SELECT tablename, indexdef FROM pg_indexes WHERE schemaname = 'public' AND indexname = 'idx_name';
tablename | indexdef
-----------+-------------------------------------------------------------------------------
plan | CREATE UNIQUE INDEX idx_name ON public.plan USING btree (lower((name)::text))
(1 row) …Run Code Online (Sandbox Code Playgroud) 超级小问题时间!我试图在google appengine上使用simplejson.在我的机器上的终端中,我安装了simplejson并正常工作.但是当我尝试在appengine上运行的脚本中导入它时,我得到一个错误,说没有这样的库存在.如果在我的机器上打开交互式控制台(从http:// localhost:8080/_ah/admin上的链接)并输入"import simplejson",我得到:
回溯(最近一次调用最后一次):文件"/ home/chris/google_appengine/google/appengine/ext/admin/init .py",第210行,在post exec(compiled_code,globals())文件"",第1行,在ImportError中:没有名为simplejson的模块
有什么想法吗?
我正在使用 django 1.2.5 和 python 2.7。由于某种原因,django shell 中的终端类型是错误的,这让我很恼火。如果我按上、下、右、左键,我会得到:
>>> ^[[A^[[B^[[C^[[D
Run Code Online (Sandbox Code Playgroud)
这仅发生在./manage.py shell. 这在普通的 python 解释器中不是问题,并且它的发生与屏幕是否打开无关。有什么想法吗?
编辑:这是结果import code; code.interact()
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
Run Code Online (Sandbox Code Playgroud) 我已成功使用Google App Engine发送电子邮件.但是,我可以使用的唯一电子邮件地址是我列为网站管理员的Gmail地址.我在自己的域上运行应用程序(使用Google Apps购买和维护).我想从我自己的域名发送电子邮件.这是代码(或类似的东西):
from google.appengine.api import mail
sender = "myaddress@google.com"
sender_i_want = "myaddress@mygoogleapp.com"
mail.send_mail(sender=sender,
to="Albert Johnson <Albert.Johnson@example.com>",
subject="Your account has been approved",
body=some_string_variable)
Run Code Online (Sandbox Code Playgroud)
当我尝试从我自己的域发送它时出现的错误是"InvalidSenderError:Unauthorized sender".我拥有域名,事实上我确实授权使用我的域名来发送邮件,我只需要知道如何说服App Engine这是真的.
我有一系列的表格,我想都有一个订单字段.所以我做了一个抽象的模型:
class OrderedModel(models.Model):
order = models.IntegerField(default=-1)
def _order(self):
pass #ordering widget for changelist_view
_order.allow_tags = True
def save(self,*args,**kwargs):
#set order = 0 if < 0
super(OrderedModel,self).save(*args,**kwargs)
class Meta:
abstract = True
Run Code Online (Sandbox Code Playgroud)
我不希望他们更改change_view中的"order"字段,因此我创建了以下ModelAdmin:
class OrderedAdmin(models.ModelAdmin):
list_display = ("__str__","_order","order")
list_editable = ("order",)
readonly_fields = ("order",)
Run Code Online (Sandbox Code Playgroud)
只要从OrderedModel继承的每个模型在list_display,list_editable或readonly_fields中不再需要任何项目,那就没问题.例如,以下内容会生成错误,因为order在list_editable中但不在list_display中:
class Chapter(OrderedModel):
title = models.CharField(max_length=32)
class ChapterAdmin(OrderedAdmin):
list_display = ("title",)
Run Code Online (Sandbox Code Playgroud)
我注意到有一个get_readonly_fields我可以更改以确保"order"被添加到readonly_fields,但是没有get_list_display或get_list_editable来重写.是否有可能做到这一点?
我正在处理来自应用程序的数据,该应用程序在如何保持时间方面有一些怪癖.一个更简单的怪癖是它使用"一年中的一天"(1月1日是1,2月1日是32等)而不是月份+日.所以我想创建自己的日期类,它继承自默认的datetime类,并且有一些自定义方法.我白天打电话给我.除了输出到我的奇怪格式的方法之外,我还需要将奇怪的格式输入到白天的方法.就像方法.fromordinal()可以从datetime调用一样,我希望有一个方法.fromdayofyear()可以从白天调用.到目前为止我得到了:
import datetime
class daytime(datetime.datetime):
@property
def dayofyear(self):
return (self.date - datetime.date(self.year,1,1)).days + 1
def fromdayofyear(year,dayofyear):
return datetime(year,1,1)+datetime.timedelta(dayofyear-1)
Run Code Online (Sandbox Code Playgroud)
问题是,由于fromdayofyear是一个类,它需要一个白天实例来执行任何方法.
>>> from utils import daytime
>>> day = daytime.fromdayofyear(2010,32) #should give a datetime, Feburary first
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unbound method from_datetime() must be called with DayTime instance as first argument (got str instance instead)
>>>
Run Code Online (Sandbox Code Playgroud)
我可以很容易地编写一系列函数来做到这一点,但是这使得开始创建自定义类失败了.我意识到我可能不应该在这里使用课程.有人能指出我正确的方向吗?
编辑:
这就是我所确定的:
import datetime
class daytime(datetime.datetime):
@property
def dayofyear(self):
return (self.date - datetime.date(self.year,1,1)).days + 1
@classmethod …Run Code Online (Sandbox Code Playgroud) python ×9
django ×2
class ×1
datetime ×1
django-admin ×1
email ×1
instance ×1
math ×1
numpy ×1
performance ×1
postgresql ×1
shell ×1
simplejson ×1
sqlalchemy ×1
stdout ×1
web-services ×1