我有一个通过httplib使用连接到URL的功能lxml.它检查xpath某个模式,如果检查结果是肯定的,则返回一个字符串.但如果检查结果为否定,则不返回任何内容.
现在的情况是,我的函数返回None.我调用该函数,检查它的返回值是否为not None并继续在代码中.
一个例子:
def foobar(arg):
# connect to page by httplib
# check for arg in a certain pattern by lxml
if check:
return result
else:
return None
result = foobar(arg)
if result:
# do stuff
else:
# do other stuff
Run Code Online (Sandbox Code Playgroud)
最近我读到,这是不行的.我该如何避免这种情况?
我正在尝试使用doctest模块进行Python测试.目前我这样做
因此,在具有许多测试的同一模块中的3或4个(独立)函数之后,我通过doctest获得了巨大的输出.这有点让人烦恼.
有没有办法告诉文档测试"不测试的功能a(),b()和c() ",因此,它只能运行在无人盯防的功能呢?
我只找到了doctest.SKIP旗帜,这不足以满足我的需求.我必须将这个标志放在很多行中.如果我想再次检查一个标记的函数,我将不得不手动完成代码并删除我设置的任何标志.
假设您想要使用某些参数启动python脚本
python myscript some arguments
Run Code Online (Sandbox Code Playgroud)
据我所知,这些字符串sys.argv[1]和sys.argv[2]将在终端指定的编码.有没有办法从python脚本中获取此信息?
我的目标是这样的:
terminal_enocding = some_way.to.GET_TERMINAL_ENCODING
some = `sys.argv[1]`.decode(terminal_encoding)
arguments = `sys.argv[2]`.decode(terminal_encoding)
Run Code Online (Sandbox Code Playgroud) 假设有两个python脚本想要将数据写入同一个表,该表使用该sqlite3模块存储在SQLite文件中.SQLite文件存储在NFS文件系统中.在SQLite-FAQ中我读到:
SQLite使用读取器/写入器锁来控制对数据库的访问.[...]但请注意:如果数据库文件保存在NFS文件系统上,则此锁定机制可能无法正常工作.这是因为许多NFS实现都会破坏fcntl()文件锁定.如果多个进程可能同时尝试访问该文件,则应避免将SQLite数据库文件放在NFS上.
这是否意味着它根本不可能或者是否有某种方法可以确保一个进程等待另一个进程完成?
INSERT并不复杂.一些:
INSERT_STATEMENT = "INSERT INTO some_table (row, col, val) VALUES (?, ?, ?)"
connection.executemany(INSERT_STATEMENT, triples)
Run Code Online (Sandbox Code Playgroud)
并且插入的集合是不相交的.
另一个问题:当两个进程尝试写入同一个表或尝试写入同一个数据库(这是一个文件)时,是否会出现NFS问题?让每个进程在同一个数据库(文件)中创建自己的表并写入该表是否是一种解决方法?
在某些设置操作期间,我在Python中遇到此错误:
TypeError: unhashable type: 'InstrumentedList'
Run Code Online (Sandbox Code Playgroud)
什么是InstrumentedListPython?我只找到了一些与SQLAlchemy相关的引用.这是列表中的SQLAlchemy实现还是什么?
顺便说一下,它在执行时发生:
set(self.some_list)
Run Code Online (Sandbox Code Playgroud)
哪里
print type(self.some_list) # <type 'list'>
Run Code Online (Sandbox Code Playgroud) 目前,每当我想通过MySQL Workbench转储数据库时,它会将此标准路径显示为默认路径:
/home/me/dumps/Dump20110810 # The date alters.
Run Code Online (Sandbox Code Playgroud)
因为我已经将我的转储移动到一个更合适的地方(对我来说),每次我想要转储一些东西时改变路径都很烦人.我真的希望有一个设置选项,不仅可以为MySQL Workbench提供其他默认路径,还可以将新模板转换为:
/home/me/coding/myproject/Dump_database_name_2011-08-10_23:59
Run Code Online (Sandbox Code Playgroud)
我在设置中戳了一下,但我找不到任何开关.也许熟悉Workbench的人知道如何改变这种行为?
我刚刚想出了如何使用Condor在集群上的机器上发送要处理的作业.既然我们有很多机器,而不是每台机器都配置相同,我想知道:
是否有可能告诉condor只将我的作业(python脚本)发送到机器上,因为我的脚本依赖于这个包,所以机器上安装了numpy?
在python文件的开头(第一行)有时候我会阅读
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
有时候我会读
# encoding: utf-8
Run Code Online (Sandbox Code Playgroud)
这两行看起来都是一样的:将utf8指定为文件中所有文本的编码.
我有问题:
#因为它会调用注释.-*-?对于连接,拆分和处理文件和目录路径,python的os.path模块很棒.是否有网络网址的等价物?