小编Ada*_*tan的帖子

Python 缓存列表

我有一个模块,支持使用公司标准接口创建地理对象。创建这些对象后,update_db()调用该方法,并将所有对象更新到数据库中。

将所有对象插入一个会话中非常重要,以便在更新生产数据库之前保留计数器和统计信息。

问题是有时对象太多,内存就会满。

有没有办法在 Python 中创建缓存列表,以处理不适合内存的列表?

我的总体想法是:

class CachedList(object):
    def __init__(self, max_memory_size, directory)
    def get_item(index)
    def set_item(index)
    def del_item(index)
    def append(item)
Run Code Online (Sandbox Code Playgroud)

初始化时将创建一个普通列表。当列表的大小超过 时max_memory_size,列表元素将被腌制并存储在 中的文件中directoryget_item()set_item()并将del_item() 处理存储在内存中的数据,或从磁盘“交换”数据以访问它。

  1. 这是一个好的设计吗?有没有标准的替代品?
  2. 如何在pickle列表的一部分之后强制进行垃圾回收?

谢谢,

亚当

python caching list data-structures

3
推荐指数
1
解决办法
2203
查看次数

Python字符串格式化+ UTF-8奇怪的行为

打印具有固定长度(例如%20s)的格式化字符串时,宽度不同于UTF-8字符串与普通字符串:

>>> str1="Adam Matan"
>>> str2="??? ???"
>>> print "X %20s X" % str1
X           Adam Matan X
>>> print "X %20s X" % str2
X        ??? ??? X
Run Code Online (Sandbox Code Playgroud)

注意区别:

X           Adam Matan X
X        ??? ??? X
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python string utf-8

3
推荐指数
1
解决办法
2133
查看次数

Ubuntu中的信号量和锁定

我有一个备份服务器,rsync每小时接收许多连接.由于具有太多打开的rsync实例可能会使其崩溃,我想使用信号量来限制并发实例的数量.我的想法是这样的:

ssh root@backup_server "get_semaphore"     #Will hold until semaphore released
rsync -avzrL --super --delete local_directory root@backup_server:`localhost`
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

ubuntu semaphore

3
推荐指数
1
解决办法
1070
查看次数

Java双支撑初始化

我重构了以下对象初始化:

Req r = new Req();
r.set_f1("A");
r.set_f2(123);
r.set_f3(123.456);
Run Code Online (Sandbox Code Playgroud)

成:

Req r = new Req() {{
    set_f1("A");
    set_f2(123);
    set_f3(123.456)
}};
Run Code Online (Sandbox Code Playgroud)

第二个示例引发以下Eclipse警告:

serializable类不声明long类型的静态final serialVersionUID字段

我认为这些代码示例应该是等效的 - 有什么区别?

java eclipse double-brace-initialize

3
推荐指数
1
解决办法
420
查看次数

Python 2.6.1:检查是否存在导入

我已经为Python 2.6.1的一些同事的Mac OSX编写了一个实用程序脚本.由于它们没有安装所有必需的模块,我有一个try-except import子句:

try:
    import argparse
except ImportError:
    print "argparse module missing: Please run 'sudo easy_install argparse'"
    sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

我很确定有更优雅的方法来处理这个问题.有任何想法吗?

python macos python-module python-import

3
推荐指数
1
解决办法
673
查看次数

从Java BitSet中随机选取n个k位

如何挑选恰好k从一个位的Java位集合的长度mn位打开,在那里k?n?m

输入示例: m=20, n=11 在此输入图像描述

示例输出: k=3 在此输入图像描述

天真的做法

选择一个随机数.0? i ? m-1如果它在输入上打开而未在输出上打开,则在输出中将其k打开,直到在输出中打开位.

n比小得多时,这种方法会失败m.还有其他想法吗?

java algorithm

3
推荐指数
1
解决办法
965
查看次数

Java:RandomStringUtils 随机种子

我一直在使用RandomStringUtils生成随机 ID 来用作数据库密钥:

\n\n
import org.apache.commons.lang.RandomStringUtils;\npublic class RandomStringTest {\n    public static void main(final String[] args) {\n        for (int i = 0; i <= 10; i++) {\n            final String id = RandomStringUtils.random(8,\n                    "0123456789abcdefghijklmnopqrstuvwxyz");\n            System.out.println(id);\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

按键空间足够大,

\n\n
len("0123456789abcdefghijklmnopqrstuvwxyz")^8 = 2821109907456 \xe2\x89\x83 10^12\n
Run Code Online (Sandbox Code Playgroud)\n\n

随机机制是否正确播种?在将其应用于生产之前,我需要知道密钥是否已正确分发。

\n\n

顺便说一句,测试代码在执行几次后没有显示重复,但这还远非可靠的证明。

\n

java random apache-commons

3
推荐指数
1
解决办法
9966
查看次数

Vim,Java:在游标下打开类并转到方法

Vim可以使用光标打开文件gf.例如,如果我在光标下面有以下内容:

SensorManagementActivity.java
Run Code Online (Sandbox Code Playgroud)

打击gf会打开SensorManagementActivity.java.

问题是在Java中,引用缺少java后缀,并且通常显示为SomeClass,SomeClass()SomeClass.method().

  • 当光标在另一个文件中打开时SomeClass.java,如何打开并跳转到?someMethod()SomeClass.someMethod()
  • 有没有办法在不保存当前文件的情况下打开新文件,并在不丢失更改的情况下返回当前文件?

java vim cursor code-navigation

3
推荐指数
1
解决办法
1953
查看次数

如何分发带有依赖项的开源jar?

我想分发一个我在一些许可许可下写的Java包.

结果speedytools-0.1.jar有一些常见的Java依赖项,如Apache Commons和Guava.

分发这个jar的Java风格最多的方法是什么?我应该在我的分布式zip文件中包含依赖项吗?

java software-distribution jar dependency-management

3
推荐指数
1
解决办法
629
查看次数

使用AWK打印XML元素

如何使用AWK打印XML元素的内容 - 从起始标记到结束标记?

例如,请考虑以下XML:

<flight>
    <airline>Delta</airline>
    <flightno>22</flightno>
    <origin>Atlanta</origin>
    <destination>Paris</destination>
    <departure>5:40pm</departure>
    <arrival>8:10am</arrival>
</flight>
<city id="AT"> 
       <cityname>Athens</cityname> 
       <state>GA</state>
       <description> Home of the University of Georgia</description>
       <population>100,000</population>
       <location>Located about 60 miles Northeast of Atlanta</location>
       <latitude>33 57' 39" N</latitude>
       <longitude>83 22' 42" W</longitude>
</city>
Run Code Online (Sandbox Code Playgroud)

所期望的输出可以是内容city元素,从<city...></city>.

xml awk

3
推荐指数
1
解决办法
5451
查看次数