我想在逗号上拆分一个字符串,但忽略它在引号内的情况:
例如:
teststring = '48, "one, two", "2011/11/03"'
teststring.split(",")
['48', ' "one', ' two"', ' "2011/11/03"']
Run Code Online (Sandbox Code Playgroud)
我想要的输出是:
['48', ' "one, two"', ' "2011/11/03"']
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我创建了一个小/基本的python脚本来将数据插入到MySQL数据库中.我包含了一些错误处理 - 主要是为了关闭连接和/或在出错时防止挂起连接(......但也忽略了一些错误).
我以为我拥有的东西(见下文)是对的 - 似乎工作正常.但偶尔我会得到"连接太多"错误 - 我假设这意味着我实际上并没有正确关闭连接(或者错误处理可能不正确).
conn=MySQLdb.connect(host=####, user=####, passwd=####, db=####)
curs=conn.cursor()
try:
curs.execute(sql)
conn.commit()
except MySQLdb.Error as e:
if e[0]!= ###:
raise
finally:
curs.close()
conn.close()
Run Code Online (Sandbox Code Playgroud)
(我也没试过finally:)
另一个(我认为重要的)是MySQL数据库使用InnoDB存储引擎.这是我第一次使用InnoDB引擎,也许MyISAM有一些与此相关的差异,我不知道(比如conn.commit(),但是出于错误)....这似乎是我所有的来源其他问题!
提前致谢
我正在寻找一种在python中解压缩嵌套zip文件的方法.例如,考虑以下结构(为了方便起见,假设名称):
...等等.我正在尝试访问第二个zip中的文本文件.我当然不想提取所有东西,因为剪切数会使计算机崩溃(第一层有几百个拉链,第二层有几乎10,000个(每个拉链)).
我一直在使用'zipfile'模块 - 我可以打开第一级zipfiles.例如:
zipfile_obj = zipfile.ZipFile("/Folder/ZipfileA.zip")
next_layer_zip = zipfile_obj.open("ZipfileA1.zip")
Run Code Online (Sandbox Code Playgroud)
但是,这会返回一个"ZipExtFile"实例(不是文件或zipfile实例) - 然后我就不能继续打开这个特定的数据类型.我不能这样做:
data = next_layer_zip.open(data.txt)
Run Code Online (Sandbox Code Playgroud)
然而,我可以"读取"此zip文件文件:
next_layer_zip.read()
Run Code Online (Sandbox Code Playgroud)
但这完全没用!(即只能读取压缩数据/ goobledigook).
有没有人对我如何解决这个问题有任何想法(不使用ZipFile.extract)?
我遇到过这个问题,http://pypi.python.org/pypi/zip_open/ - 它看起来完全符合我的要求,但它似乎对我不起作用.(继续获取"[Errno 2]没有这样的文件或目录:"对于我正在尝试处理的文件,使用该模块).
任何想法将不胜感激!! 提前致谢
我正在尝试使用 sqlalchemyload_only函数从表中选择列的子集。不幸的是,它似乎不仅仅返回函数调用中指定的列 - 具体来说,它似乎还获取主键(在我的例子中,是一个 auto_increment id 字段)。
一个简单的例子,如果我使用这个语句来构建一个查询,:
query = session.query(table).options(load_only('col_1', 'col_2'))
Run Code Online (Sandbox Code Playgroud)
然后query.statement看起来像这样:
SELECT "table".id, "table"."col_1", "table"."col_2"
FROM "table"
Run Code Online (Sandbox Code Playgroud)
这不是我所期望的 - 鉴于我已经指定了要使用的“唯一”列...它们来自哪里id- 有没有办法删除它?
我试图通过使用timeit测试(计时)各种函数来优化一些python代码.
我发现根据变量是关键字参数还是函数内部,我得到的速度不同.
那是:
def test_function(A = value()):
#rest of function....
Run Code Online (Sandbox Code Playgroud)
返回的结果与以下不同:
def test_function():
A = value()
#rest of function ...
Run Code Online (Sandbox Code Playgroud)
我想他们会得到非常相似的结果 - 我猜我不理解/遗漏了一些东西......
(也为测试做了10,000次循环)
我正在尝试构建 python3 的本地版本(特别是 python3.7,但与 3.6.6 相同的问题),但是在链接到某些 C 库和/或头文件时遇到了问题(至少这是我认为的问题)是)。
我能够构建 python3.7,但遇到 bzip2 的问题(但我怀疑还会有其他我不知道的系统库)。这在尝试导入需要它作为导入错误的各种包/模块时表现出来:
ModuleNotFoundError: No module named '_bz2'
Run Code Online (Sandbox Code Playgroud)
从这个stackoverflow question - Ask Question - 看来我已经构建了没有正确bz2标头的python。python 构建本身不会失败。
具体问题是如何用bz2搭建本地版本的python?更一般地,问题是如何正确链接到系统库?(因为可能还有其他人我没有遇到错误)
就我所尝试的而言 - 我发现了这个(陈旧的)问题 - 你如何将 bz2 分配给 python 的 altinstall?和这个最近的问题Compiling bz2 support in python2并尝试了一些基于这些的东西。
我遇到的第一个问题实际上是找到正确的库等进行链接(上述问题中的解决方案建议设置CFLAGS="-I/path/to/bz2/include"和LDFLAGS="-L/path/to/bz2/lib")。大概这些在我的系统上的某个地方(ubuntu 16.04),因为系统安装的 python2.7 和 python3.5 与 bzip2 没有问题。
我发现libbz2.so.1(和其他一些)/lib/x86_64-linux-gnu/- 但文件夹似乎没有遵循上面示例/答案的模式。因此,我构建了一个新的本地版本的 bz2(在.bzp我的本地文件夹中),然后在尝试构建 python3.7 时尝试链接到该版本,使用以下命令:
./configure --prefix=/home/user/.localpython CFLAGS="-I/home/user/.bz2/include" LDFLAGS="-L/home/user/.bz2/lib"
Run Code Online (Sandbox Code Playgroud)
我还尝试了一个更通用的配置(它松散地基于Compile Python with bz2 support,链接到上面的第二篇文章中。)
./configure --prefix=/home/user/.python CFLAGS="-I/usr/local/include" …Run Code Online (Sandbox Code Playgroud) python ×6
bzip2 ×1
cflags ×1
csv ×1
innodb ×1
ldflags ×1
mysql-python ×1
performance ×1
python-3.x ×1
sqlalchemy ×1
zip ×1