问题列表 - 第9452页

Python类合并已排序的文件,如何改进?

背景:

我正在清理大型(不能保留在内存中)制表符分隔的文件.当我清理输入文件时,我在内存中建立了一个列表; 当它获得1,000,000个条目(内存大约1GB)时,我将其排序(使用下面的默认密钥)并将列表写入文件.此类用于将已排序的文件重新组合在一起.它适用于我迄今遇到的文件.到目前为止,我最大的案例是合并66个已排序的文件.

问题:

  1. 我的逻辑中有漏洞(它在哪里脆弱)?
  2. 我是否正确实施了合并排序算法?
  3. 有没有明显的改进?

示例数据:

这是其中一个文件中的一行的抽象:

'hash_of_SomeStringId\tSome String Id\t\t\twww.somelink.com\t\tOtherData\t\n'

外卖是我'SomeStringId'.lower().replace(' ', '')用作我的排序键.

原始代码:

class SortedFileMerger():
    """ A one-time use object that merges any number of smaller sorted 
        files into one large sorted file.

        ARGS:
            paths - list of paths to sorted files
            output_path - string path to desired output file
            dedup - (boolean) remove lines with duplicate keys, default = True
            key - use to override sort key, default = "line.split('\t')[1].lower().replace(' ', '')"
                  will be …
Run Code Online (Sandbox Code Playgroud)

python merge mergesort large-file-support

8
推荐指数
1
解决办法
4645
查看次数

Nhibernate - 初始化列表 - 最佳实践?

我只是想知道一些CodeWarning(ConstructorsShouldNotCallBaseClassVirtualMethods),如果有更好的方法来做到这一点.我有一个简单的日志收集器类,我使用NHibernate来检索一些对象.

有时我自己创建对象(当然)并将它们添加到NHibernate中以保持持久性.确保列表永远不为NULL的最佳方法是什么.

目前我这样做,但似乎并不"完美".关于这个话题的任何想法?

public class LogRun
{
    public virtual int Id { get; private set; }
    public virtual DateTime StartTime { get; set; }
    public virtual DateTime EndTime { get; set; }
    public virtual IList<Log> LogMessages { get; set; }
    public virtual int LogMessageCount { get { return LogMessages.Count; } }

    public LogRun()
    {
        LogMessages = new List<Log>();
    }


}
Run Code Online (Sandbox Code Playgroud)

nhibernate list

6
推荐指数
1
解决办法
2866
查看次数

从Rails中的任何位置访问"会话密钥"cookie名称

我们正在构建一个用于在iframe Facebook应用程序中使用的Rails插件,并且我们需要检查是否已经设置了Rail的会话ID cookie.

默认情况下,这个cookie被命名为_myprojectname_session,我们要搞清楚什么是cookie自身的实际名称.因此,如果没有设置,我们可以进行一些重定向以确保设置cookie.

我们如何从任何地方访问该死的名称?或者至少从控制器内部?

cookies session ruby-on-rails

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

为什么我的python程序输出中有额外的空行?

我对python并不是特别有经验,所以可能会在下面做些傻事.我有以下程序:

import os
import re
import linecache

LINENUMBER = 2

angles_file = open("d:/UserData/Robin Wilson/AlteredData/ncaveo/16-June/scan1_high/000/angles.txt")

lines = angles_file.readlines()

for line in lines:
    splitted_line = line.split(";")
    DN = float(linecache.getline(splitted_line[0], LINENUMBER))
    Zenith = splitted_line[2]
    output_file = open("d:/UserData/Robin Wilson/AlteredData/ncaveo/16-June/scan1_high/000/DNandZenith.txt", "a")
    output_file.write("0\t" + str(DN) + "\t" + Zenith + "\n")
    #print >> output_file, str(DN) + "\t" + Zenith
    #print DN, Zenith

output_file.close()
Run Code Online (Sandbox Code Playgroud)

当我查看文件的输出时,我得到以下内容:

0   105.5     0.0

0   104.125  18.0

0   104.0    36.0

0   104.625  54.0

0   104.25   72.0

0   104.0    90.0

0   104.75  108.0

0 …
Run Code Online (Sandbox Code Playgroud)

python

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

MOV格式规范

是否有不使用Quicktime SDK读取Quicktime MOV文件的文档?

file-format specifications quicktime

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

数组划分 - 从MATLAB转换为Python

我在MATLAB中有这行代码,由其他人编写:

c=a.'/b
Run Code Online (Sandbox Code Playgroud)

我需要将它翻译成Python.a,b和c都是数组.我目前用于测试代码的维度是:

a:18x1,
b:25x18,

这给了我c尺寸1x25.

数组不是正方形,但我不希望代码失败.有人可以解释这条线正在做什么(数学上),以及如何在Python中做到这一点?(即,如果它存在于Python中,那么MATLAB中内置的mrdivide函数的等价物?)

python matlab numpy linear-algebra

7
推荐指数
3
解决办法
8770
查看次数

在数据库中计算相等值的最佳实践是什么?

我有一个相当大的mysql数据库,我想计算所有相等的值,以更好地解释自己:

我有一个国家领域有几个国家的价值观(美国,英国,墨西哥......等).我想得到没有重复的国家数量(如果我有100个美国和2个英国和1000个MEX,结果将是3) .

我能想到的唯一方法是:

$i="0";
$query = "SELECT DISTINCT country FROM table"; 
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$i++;
}
echo $i;
Run Code Online (Sandbox Code Playgroud)

我真的认为有更好的方法来实现这一点,也许直接提出一个sql语句?

一如既往地感谢您的回复.

php mysql

0
推荐指数
1
解决办法
926
查看次数

我可以编写没有标题的C++代码(重复的函数声明)吗?

有没有办法不必编写两次函数声明(头文件),并且在编译时仍然保持相同的可伸缩性,调试的清晰度和在C++中编程时的设计灵活性?

c++ header header-files

56
推荐指数
8
解决办法
4万
查看次数

警告:将来修改

我收到了警告

Warning: sendmailpm.jsp modified in the future. 
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

java jsp

7
推荐指数
4
解决办法
2万
查看次数

在C#构造函数中使用this()

我一直试图弄清楚这些构造函数之间是否存在任何差异.假设有一个不带参数的Foo()构造函数,所有这些构造函数都会有相同的结果吗?

例1

public Foo()
    : this()
{
     blah;
     blah;
     blah;
}
Run Code Online (Sandbox Code Playgroud)

例2

public Foo()
{
     this();
     blah;
     blah;
     blah;
}
Run Code Online (Sandbox Code Playgroud)

例3

public Foo()
{
     this = new Foo();
     blah;
     blah;
     blah;
}
Run Code Online (Sandbox Code Playgroud)

c# constructor

10
推荐指数
2
解决办法
4474
查看次数