草庐IT

save_stdout

全部标签

python - 将附加参数传递给 post_save 信号

我的Django应用程序中有一个用户注册表单,它会在用户尝试注册时收集其他数据,例如地址、城市、国家/地区、电话号码等。这些数据通过post_save信号保存在Account模型类中。用户创建过程是这样的:#FunctiontoCreateuserAccount/Profiledefcreate_user_account(sender,instance,created,**kwargs):ifcreated:models.Account.objects.create(user=instance)#CreateUser/UserRegistrationdefUserRegistratio

python - 覆盖 Django InlineModelAdmin 上的 save_model

我有一个模型,它有一个user字段,需要从当前登录的用户自动填充。我可以让它按规定工作here如果user字段在标准ModalAdmin中,但如果我正在使用的模型在InlineModelAdmin中并从Admin中另一个模型的记录中保存,它不会占用。 最佳答案 这是我认为最好的解决方案。我花了一段时间才找到它......这个答案给了我线索:https://stackoverflow.com/a/24462173/2453104在您的admin.py上:classYourInline(admin.TabularInline):mode

python - 如何从 subprocess.Popen.stdout 读取所有可用数据(非阻塞)?

我需要一种方法来读取Popen创建的流中所有当前可用的字符,或者找出缓冲区中剩余的字符数。背景:我想用Python远程控制一个交互式应用程序。到目前为止,我使用Popen创建了一个新的子进程:process=subprocess.Popen(["python"],shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,cwd=workingDir)(我不是真的开始python,但实际的交互界面是相似的。)目前我读取了1个字节,直到我检测到进程已到达命令提示符:output=""whil

python - 编写一个 pytest 函数来检查控制台上的输出(stdout)

Thislink描述了如何使用pytest来捕获控制台输出。我尝试了以下简单代码,但出现错误importsysimportpytestdeff(name):print"hello"+namedeftest_add(capsys):f("Tom")out,err=capsys.readouterr()assertout=="helloTom"test_add(sys.stdout)输出:pythontest_pytest.pyhelloTomTraceback(mostrecentcalllast):File"test_pytest.py",line12,intest_add(sys.s

python - 如果stdout = PIPE,我如何找出为什么subprocess.Popen wait() 永远等待?

我有一个写入标准输出和可能标准错误的程序。我想从python运行它,捕获标准输出和标准错误。我的代码如下:fromsubprocessimport*p=Popen(exe,shell=TRUE,stdout=PIPE,stderr=PIPE)rtrncode=p.wait()对于几个程序,这可以正常工作,但是当我添加一个新程序时,新程序会永远挂起。如果我删除stdout=PIPE,程序会将其输出写入控制台并完成,一切都很好。如何确定导致挂起的原因?在WindowsXP上使用python2.5。该程序不会从标准输入读取数据,也没有任何类型的用户输入(即“按下键”)。

python - 在 Django 中调用 save 之前检测模型是否已更改

我有一个数据库模型,它正在根据远程数据的变化(通过HTML抓取器)进行更新。我想维护一个名为changed的字段-一个时间戳,表示该模型的值上次更改的时间(请注意,这与auto_now不同因为每次调用模型的save方法时这些字段都会更新)。这是我的问题:在模型的save方法中,是否有一种直接的方法来检测模型实例的当前值是否与数据库中的值不同?或者,是否有任何替代方法可以轻松维护changed时间戳? 最佳答案 如果你通过表单保存你的实例,你可以检查form.has_changed()。

python - 子进程.Popen : cloning stdout and stderr both to terminal and variables

是否可以修改下面的代码以从'stdout'和'stderr'打印输出:在终端上打印(实时),最后存储在outs和errs变量中?代码:#!/usr/bin/python3#-*-coding:utf-8-*-importsubprocessdefrun_cmd(command,cwd=None):p=subprocess.Popen(command,cwd=cwd,shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)outs,errs=p.communicate()rc=p.returncodeouts=outs.deco

python - 将 stdout 和 stderr 从辅助线程重定向到 PyQt4 QTextEdit

堆栈溢出。再一次,我在急需的时候来找你,在精神错乱的边缘摇摇欲坠。这个问题——从标题中可以看出——是我在这里看到的其他几个问题的合并。我有一个PyQt应用程序,我想将stdout和stderr流重新路由到我的GUI中的QTextEdit没有延迟。最初,我找到了以下堆栈溢出答案:https://stackoverflow.com/a/17145093/629404这很有效,但有一个警告:如果在CPU处理相对较长的方法时多次更新stdout或stderr,所有更新都会在主线程返回应用程序循环时同时显示。不幸的是,我有一些方法最多需要20秒才能完成(与网络相关),因此应用程序变得无响应-并且

python - 如何将 kwargs 从 save 传递到 post_save 信号

我正在连接一个自定义post_save信号,并注意到我似乎无法找到一种简单的方法来传递一组kwargs。在保存期间(在自定义表单中)defsave(self,commit=True):user=super(CustomFormThing,self).save(commit=False)#setsomeotherattrsonuserhere...ifcommit:user.save()returnuser然后在我的自定义post_save钩子(Hook)中,我有以下内容(但从未得到任何kwargs)@receiver(post_save,sender=User)defcreate_pr

Python 子进程 Popen.communicate() 等价于 Popen.stdout.read()?

非常具体的问题(我希望):以下三个代码有什么区别?(我希望它只是第一个不等待子进程完成,而第二个和第三个会这样做。但我需要确定这是only的区别...)我也欢迎其他评论/建议(尽管我已经很清楚shell=True的危险和跨平台限制)请注意,我已经阅读了Pythonsubprocessinteraction,whydoesmyprocessworkwithPopen.communicate,butnotPopen.stdout.read()?并且我不想/不需要之后与程序交互。另外请注意,我已经阅读了AlternativestoPythonPopen.communicate()memory