如何在一行中读取从a列到B列的所有字符

2024-09-28 21:58:00 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,如果一个文件有10000行,其中所有行都具有以下结构:

1,2,xvfrt ert5a fsfs4 df f fdfd56,234

或者类似的方法,读取整个字符串,然后将第7列到第17列的所有字符(包括空格)存储在另一个字符串中,因此新字符串将是

“xvfrt ert5a”?在

非常感谢


Tags: 文件方法字符串df字符结构空格fsfs4
3条回答

这从技术上回答了直接的问题:

lst = [line[6:17] for line in open(fname)]

但有一个致命的缺陷。对于一次性代码来说,这是可以的,但是数据看起来像逗号分隔的值,第三个字段甚至可能是以空格分隔的数据块。最好这样做,这样如果前两列多出一个数字,它仍然可以工作:

^{pr2}$

如果这些空格分隔的块可能会变长,那么:

lst = [x[2].strip().split()[0:2] for x in [line.split(',') for line in open(fname)]]

别忘了一两句话来解释发生了什么事。或许:

# on each line, get the 3rd comma-delimited field and break out the 
# first two space-separated chunks of the licence key

当然,假设这些是许可证密钥。评论不必太抽象。在

lst = [line[6:17] for line in open(fname)]
another_list = []
for line in f:
    another_list.append(line[6:17])

或者作为生成器(内存友好型解决方案):

^{pr2}$

相关问题 更多 >