在什么情况下,像eventlet/gevent这样的东西比扭曲更好?Twisted似乎是最常用的,但eventlet/gevent必须具有一些优势......我不是在寻找特定场景的答案,只是一般性.
标题本来可以更好,但无论如何。我想知道是否有任何写入文件的功能,例如数据库的ACID属性。原因是,我要确保在电源中断的情况下,文件写入“我正在做”不会弄乱和破坏文件。
首先,我不知道这是否适用于 stackoverflow 或其他相关网站之一。所以,我的系统上有 apsw,并且使用的是 python 2.6 32 位。我的朋友正在使用 Python 64 位,当我尝试在他的系统上安装 apsw 时,我们遇到了很多错误,这取决于我们如何安装它。首先,通过 exe 安装给我们一个“此应用程序不是有效的 win32 程序”当我们从我的系统手动安装它时,我们得到一个“导入错误:DLL 加载失败:%1 不是有效的 Win32 应用程序”。我们在使用 sqlite3.dll 和 sqlite3.lib 构建模块时也有一些复杂性。
好的,所以我有一个函数可以根据插件的输入选择sqlite数据库中的某些行.当只涉及一个语句时,我得到了插件来选择和获取行,但由于我想为此添加一些灵活性,我尝试在遇到列表或元组时使用executemany.然而,尽管我已经摆弄和改变了所有的东西,但仍然无法使其工作,因为sqlite语句将字符串中的每个字符视为绑定,或者因为元组中的绑定太多.这是我到目前为止的代码:
def readoffset(self,offset):
vartype = type(name)
print(vartype)
if vartype == int:
self.memcursor.execute('''select all id,matbefore,matafter,name,date
from main as main where id = ?''',[offset])
undolist = self.memcursor.fetchall()
print(undolist)
return(undolist)
elif vartype == tuple or list:
print(vartype)
self.memcursor.executemany('''select all id,matbefore,matafter,name,date
from main as main where name = (?)''', [offset])
undolist = self.memcursor.fetchall()
return(undolist)
Run Code Online (Sandbox Code Playgroud)