相关疑难解决方法(0)

是否有可能加速python IO?

考虑这个python程序:

import sys

lc = 0
for line in open(sys.argv[1]):
    lc = lc + 1

print lc, sys.argv[1]
Run Code Online (Sandbox Code Playgroud)

在我的6GB文本文件上运行它,它在~2分钟内完成.

问题:是否有可能加快速度?

请注意,同一时间需要:

wc -l myfile.txt
Run Code Online (Sandbox Code Playgroud)

所以,我怀疑对我的问题的回答只是一个简单的"不".

另请注意,我的真实程序正在做一些比计算线条更有趣的事情,所以请给出一个通用答案,而不是行计数技巧(比如在文件中保留行数元数据)

PS:我在这个问题上标记了"linux",因为我只对linux特定的答案感兴趣.如果有的话,请随意提供与操作系统无关的内容,甚至是其他操作系统的答案.

另见后续问题

python linux performance text-files

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

Python与Perl中的低级脚本

在Perl中,为了小写文本文件,我可以执行以下操作lowercase.perl:

#!/usr/bin/env perl

use warnings;
use strict;

binmode(STDIN, ":utf8");
binmode(STDOUT, ":utf8");

while(<STDIN>) {
  print lc($_);
}
Run Code Online (Sandbox Code Playgroud)

并在命令行上: perl lowercase.perl < infile.txt > lowered.txt

Python,我可以做lowercase.py:

#!/usr/bin/env python
import io
import sys

with io.open(sys.argv[1], 'r', 'utf8') as fin:
    with io.open(sys.argv[2], 'r', 'utf8') as fout:
        fout.write(fin.read().lower())
Run Code Online (Sandbox Code Playgroud)

并在命令行上: python lowercase.py infile.txt lowered.txt

Perl lowercase.perl与Python有lowercase.py什么不同?

是否输出输入并在输出时将其小写?或者它是否像Python一样读取整个文件lowercase.py

有没有一种方法可以将输入流式传输到Python并逐字节输出降低的大小写或者通过char输出char?

有没有办法控制命令行语法,使其遵循Perl STDIN和STDOUT?比如python lowercase.py < infile.txt > lowered.txt

python string perl file lowercase

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

标签 统计

python ×2

file ×1

linux ×1

lowercase ×1

performance ×1

perl ×1

string ×1

text-files ×1