小编B R*_*era的帖子

在Python中移动到文件中的任意位置

假设我经常需要处理具有未知但大量行数的文件.每一行在闭区间[0,R]中包含一组整数(空格,逗号,分号或一些非数字字符是分隔符),其中R可以任意大.每行的整数数量可以变化.通常我会在每一行上获得相同数量的整数,但有时我会使用不相等的数字组.

假设我想转到文件中的第N行并检索该行上的第K个数字(并假设输入N和K有效 - 也就是说,我不担心输入错误).我如何在Python 3.1.2 for Windows中有效地执行此操作?

我不想逐行遍历文件.

我尝试使用mmap,但是当我在这里搜索SO时,我了解到这可能不是32位版本的最佳解决方案,因为4GB限制.事实上,我无法弄清楚如何简单地将N行移离当前位置.如果我至少可以"跳转"到第N行,那么我可以使用.split()并以这种方式获取Kth整数.

这里的细微差别是我不需要从文件中抓取一行.我需要抓住几行:它们不一定都是彼此靠近的,我得到它们的顺序很重要,而且顺序并不总是基于某些确定性函数.

有任何想法吗?我希望这是足够的信息.

谢谢!

python file python-3.x

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

如何使用<ol>标签创建二进制计数器?

我以为我可以做以下事情:

<ol style = "type:numeric; glyphs: '0' '1';">
    <li> Item 0 </li>
    <li> Item 1 </li>
    <li> Item 2 </li>
</ol>
Run Code Online (Sandbox Code Playgroud)

生成以二进制计数的列表.也就是说,上面的例子应该产生:

0.项目0

1.第1项

10.第2项

但是,唉,它没有这样的事情.Firefox只是忽略了我的风格建议.

我在http://www.w3.org/TR/css3-lists/上阅读了这篇文章(第8.1.2节)

但显然我误解/误解了规范.有帮助吗?

谢谢!

html css3

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

Excel中的用户定义函数和速度问题

我有一个使用几乎所有UDF的Excel模型.有说,120列和400多行.计算是垂直完成的,然后是水平的 - 首先完成第1列的所有计算,然后第1列的最终输出是第2列的输入,等等.在每一列中,我调用大约六个或七个UDF.调用其他UDF.UDF经常输出一个数组.

每个UDF的输入是许多变量,一些范围变量,一些双精度数.范围变量在访问其内容之前在内部转换为数组.

我的问题如下,我可以构建没有UDF的Excel模型,当我运行模拟时,我可以在X小时内完成所有计算.当我使用UDF时,模拟时间为3X小时或更长.(为了回答这个显而易见的问题,是的,我需要使用UDF,因为如果我想对模型做一些小改动(比如说添加另一种资产类型(它是一个财务模型)),需要将近一天的时间重建模型如果没有UDF来适应新的法律/财务结构,使用UDF需要大约20分钟才能适应不同的财务结构.)

在任何情况下,我都关闭了屏幕更新,在函数中没有复制和粘贴,Variant类型的使用是最小的,所有数据都包含在一个工作表中,我在获取内容之前将所有范围类型变量转换为数组.

除了获得更快的计算机或同等程度以使VBA代码/ Excel文件运行得更快之外,我还能做什么?如果需要更多说明,请告诉我.

谢谢!

excel optimization vba user-defined-functions

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

从python发送任意数量的输入到.exe


p = subprocess.Popen(args = "myprog.exe" + " " +
                     str(input1) + " " +
                     str(input2) + " " +
                     str(input3) + " " +
                     strpoints, stdout = subprocess.PIPE)

在上面的代码中,input1,input2和input3都是转换为字符串的整数.变量"strpoints"是任意长度的字符串列表.input1告诉myprog strpoints的长度.当然,当我尝试运行上面的代码时,我收到以下错误消息:

TypeError:无法隐式地将'list'对象转换为str

如何将strpoints的所有元素传递给myprog.exe?我注定要做str(strpoints)然后让myprog.exe解析这个逗号,撇号等?例如,

`>>> x = ['a','b']

`>>> str(x)

"['a','b']"

或者我应该提前创建一个巨大的字符串?例如,

'>>> x = ['a','b']

'>>> stringify(x)

'ab'

stringify会是这样的


def stringify(strlist):
    rlist = ""
    for i in strlist:
        rlist = rlist + i + " "
    return rlist

python executable

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

使exe优先级低

如何运行.exe低优先级?我知道我可以去任务管理器,并手动更改优先级设置,但有没有办法可以.exe从一个.bat文件中启动一个命令,使.exe以给定的优先级运行(在这种情况下为低)?.exe是我用C++编写的程序; 我可以在C++代码中设置优先级吗?

我正在运行Windows XP.

c++ executable

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