相关疑难解决方法(0)

如何跳转到一个巨大的文本文件中的特定行?

以下代码是否有其他替代方法:

startFromLine = 141978 # or whatever line I need to jump to

urlsfile = open(filename, "rb", 0)

linesCounter = 1

for line in urlsfile:
    if linesCounter > startFromLine:
        DoSomethingWithThisLine(line)

    linesCounter += 1
Run Code Online (Sandbox Code Playgroud)

如果我正在(~15MB)使用未知但不同长度的行处理一个巨大的文本文件,并且需要跳转到我事先知道的特定行?当我知道我至少可以忽略文件的前半部分时,我会逐个处理它们.寻找更优雅的解决方案,如果有的话.

python text-files

102
推荐指数
9
解决办法
15万
查看次数

转到Python中的特定行?

我想转到.txt文件中的第34行并阅读它.你会怎么用Python做的?

python

40
推荐指数
3
解决办法
8万
查看次数

Python最快访问文件中的行

我在一个文件中有一个ASCII表,我想从中读取一组特定的行(例如,行4003到4005).问题是这个文件可能非常长(例如,数千到数百万行),我想尽快做到这一点.

糟糕的解决方案:读入整个文件,然后转到这些行,

f = open('filename')
lines = f.readlines()[4003:4005]
Run Code Online (Sandbox Code Playgroud)

更好的解决方案:enumerate在每条线路上,以便它不在内存中(la /sf/answers/145731631/)

f = open('filename')
lines = []
for i, line in enumerate(f):
    if i >= 4003 and i <= 4005: lines.append(line)
    if i > 4005: break                                    # @Wooble
Run Code Online (Sandbox Code Playgroud)

最佳方案?

但这仍然需要通过每一行.是否有更好的(在速度/效率方面)访问特定线路的方法?即使我只访问文件一次(通常),我应该使用linecache吗?

使用二进制文件,在这种情况下可能更容易跳过,是一个选项---但我宁愿避免它.

python io performance file

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

在不加载内存的情况下随机播放大量项目

我有一个大约20亿行文本的文件(~200gig).我想生成一个包含相同文本行的新文件,但是按行随机洗牌.我无法将所有数据保存在内存中.有没有一个很好的方法在python /命令行中执行此操作需要一段合理的时间(几天)?

我以为我可以触摸50个空文件.流过20亿行文件,并将每行随机分配到50个空文件中的一个.然后cat 50个文件.对这种方法有任何重大的系统偏见吗?

python shuffle

13
推荐指数
3
解决办法
4736
查看次数

带枚举的基本python file-io变量

python的新手,并试图学习文件i/o的绳索.

我正在使用以下格式从大型(200万行)文件中提取行:

56fr4
4543d
4343d
5irh3
Run Code Online (Sandbox Code Playgroud)

这是我用来返回代码的函数:

def getCode(i):
    with open("test.txt") as f:
        for index, line in enumerate(f):
            if index == i:
                code = # what does it equal?
                break
    return code
Run Code Online (Sandbox Code Playgroud)

一旦索引到达正确的位置(i),我使用什么语法来设置代码变量?

python file-io enumerate

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

如何将生成器对象转换为列表?

我的代码

def yieldlines(thefile, whatlines):
  return (x for i, x in enumerate(thefile) if i in whatlines)

file1=open('/home/milenko/EDIs/site1/newst2.txt','r')
whatlines1 = [line.strip() for line in open('m1.dat', 'r')]

x1=yieldlines(file1, whatlines1)

print x1
Run Code Online (Sandbox Code Playgroud)

我有

<generator object <genexpr> at 0x7fa3cd3d59b0>
Run Code Online (Sandbox Code Playgroud)

我应该把列表放在哪里,或者我需要重写代码?

我希望我的程序写入文件并读取内容,以便在m1.dat中编写特定行.我发现该解决方案 只读取特定行(Python)

python list generator

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

如何使用python从csv文件中仅读取特定范围的行?

例如,如何才能仅从该csv文件中的行5000到6000读取?此时,“用于阅读器中的行:”当然会遍历所有行。

所以我有这样的话:

with open('A.csv', 'rt') as f:
     reader = csv.reader(f, delimiter=';')
     for row in reader:
           response = urllib2.urlopen(row[12])
Run Code Online (Sandbox Code Playgroud)

此代码用于打开特定的URL链接。

python csv python-3.x

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

有没有更快的方法来解析这个文本文件?

我正在从一些类似于以下内容的文本文件中解析日期/时间/测量信息:

[Sun Jul 15 09:05:56.724 2018] *000129.32347
[Sun Jul 15 09:05:57.722 2018] *000129.32352
[Sun Jul 15 09:05:58.721 2018] *000129.32342
[Sun Jul 15 09:05:59.719 2018] *000129.32338
[Sun Jul 15 09:06:00.733 2018] *000129.32338
[Sun Jul 15 09:06:01.732 2018] *000129.32352
Run Code Online (Sandbox Code Playgroud)

结果进入输出文件,如下所示:

07-15-2018 09:05:56.724, 29.32347
07-15-2018 09:05:57.722, 29.32352
07-15-2018 09:05:58.721, 29.32342
07-15-2018 09:05:59.719, 29.32338
07-15-2018 09:06:00.733, 29.32338
07-15-2018 09:06:01.732, 29.32352
Run Code Online (Sandbox Code Playgroud)

我正在使用的代码如下所示:

import os
import datetime

with open('dq_barorun_20180715_calibtest.log', 'r') as fh, open('output.txt' , 'w') as fh2:
    for line in fh:
        line = line.split()
        monthalpha = …
Run Code Online (Sandbox Code Playgroud)

python optimization file

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

在Python中使用文本文件

我正在阅读一个> 10,000行的文本文件.

results_file = open("Region_11_1_micron_o", 'r')
Run Code Online (Sandbox Code Playgroud)

我想在特定字符串"chart"之后跳转到文件中的行,该字符串出现在第no行附近.7000(不同文件不同).有没有办法方便地做到这一点,而无需阅读文件的每一行?

python text-files

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

如何将字符串添加到特定行

我有一个包含50行的文件.如何使用python/linux将字符串"-----"添加到特定行,如第20行?

python linux

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

同时迭代两个文件的行

我试图在两个文件之间连接片段特定的行.这样我想从file2中的第2行添加一些东西到file1的第2行.然后从第6行从file2到文件1的第6行,依此类推.有没有办法同时迭代这两个文件来做到这一点?(知道输入文件大约为15GB可能会有所帮助).

这是一个简化的例子:

档案1:

Ignore
This is a
Ignore
Ignore
Ignore
This is also a
Ignore
Ignore
Run Code Online (Sandbox Code Playgroud)

文件2:

Ignore
sentence
Ignore
Ignore
Ignore
sentence
Ignore
Ignore
Run Code Online (Sandbox Code Playgroud)

输出文件:

Ignore
This is a sentence
Ignore
Ignore
Ignore
This is also a sentence
Ignore
Ignore
Run Code Online (Sandbox Code Playgroud)

python python-2.x

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

仅使用python读取csv文件中的某些行

我只想从 csv 文件中的某一行开始读取一定数量的行,而不需要遍历整个 csv 文件以达到这个特定点。

假设我有一个包含 100 行的 csv 文件,我只想读取第 50 行到第 60 行。我不想从第 1 行到第 49 行迭代以到达第 50 行以开始读取。我可以用seek()以某种方式实现这一目标吗?

例如:Seek to row 50 read from 50 to 60

下一次:寻求第 27 行读取 27 到 34,依此类推

因此,不仅在文件中继续向前查找,而且还向后查找。

非常感谢

python csv

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

只从 Python 的大文件中读取特定的行号?

我有一个非常大的文件,我想打开它并从中读取特定行,我总是知道我想要的数据所在的行号,但我不想每次都读取整个文件来读取它具体线路。

有没有办法只能读取 Python 中的特定行?或者最有效的方法是什么(即尽可能少地读取文件,以加快执行速度)?

large-files python-3.x

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