小编Auf*_*ind的帖子

从MySQL中的列中删除NOT NULL限制

如何更改限制为NOT NULL的列以接受NULL值?

mysql null alter

14
推荐指数
1
解决办法
2万
查看次数

不推荐在python中`return None`.如何绕过?

我有一个通过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)

最近我读到,这是不行的.我该如何避免这种情况?

python handle return-value

14
推荐指数
1
解决办法
4万
查看次数

是否可以仅在模块中使用doctest测试特定函数?

我正在尝试使用doctest模块进行Python测试.目前我这样做

  1. 编写功能测试.
  2. 实现功能代码.
  3. 如果测试通过,请编写更多测试和更多代码.
  4. 当功能完成后,继续执行下一个功能.

因此,在具有许多测试的同一模块中的3或4个(独立)函数之后,我通过doctest获得了巨大的输出.这有点让人烦恼.

有没有办法告诉文档测试"不测试的功能a(),b()c() ",因此,它只能运行在无人盯防的功能呢?

我只找到了doctest.SKIP旗帜,这不足以满足我的需求.我必须将这个标志放在很多行中.如果我想再次检查一个标记的函数,我将不得不手动完成代码并删除我设置的任何标志.

python testing flags doctest skip

14
推荐指数
1
解决办法
4781
查看次数

你如何从python脚本中获得终端的编码?

假设您想要使用某些参数启动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 terminal encoding

12
推荐指数
2
解决办法
4314
查看次数

可以在NFS文件系统上锁定sqlite文件吗?

假设有两个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 sqlite nfs locking

12
推荐指数
1
解决办法
7322
查看次数

什么是Python中的InstrumentedList?

在某些设置操作期间,我在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)

python

11
推荐指数
2
解决办法
9398
查看次数

如何修改MySQL Workbench的标准路径,指向备份的存储位置?

目前,每当我想通过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的人知道如何改变这种行为?

mysql-workbench

11
推荐指数
1
解决办法
4661
查看次数

如何告诉Condor只将作业分派给集群上安装了"numpy"的机器?

我刚刚想出了如何使用Condor在集群上的机器上发送要处理的作业.既然我们有很多机器,而不是每台机器都配置相同,我想知道:

是否有可能告诉condor只将我的作业(python脚本)发送到机器上,因为我的脚本依赖于这个包,所以机器上安装了numpy?

python cluster-computing job-scheduling condor

11
推荐指数
2
解决办法
1329
查看次数

在python文件中指定编码时,python中的"magic lines(s)"如何工作?

在python文件的开头(第一行)有时候我会阅读

# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)

有时候我会读

# encoding: utf-8
Run Code Online (Sandbox Code Playgroud)

这两行看起来都是一样的:将utf8指定为文件中所有文本的编码.

我有问题:

  1. 为什么这甚至有效?我认为解释器会忽略所有内容,#因为它会调用注释.
  2. 上面两行有什么区别?翻译是否只是忽略-*-

python encoding interpreter comments

10
推荐指数
1
解决办法
4042
查看次数

os.path相当于python中的web url?

对于连接,拆分和处理文件和目录路径,python的os.path模块很棒.是否有网络网址的等价物?

python url path

10
推荐指数
1
解决办法
3789
查看次数