首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python中的特定列号从文本文件中读取值

使用Python中的特定列号从文本文件中读取值
EN

Stack Overflow用户
提问于 2017-07-24 17:30:25
回答 1查看 1.7K关注 0票数 0

例如,如果我有一个大的文本文件,并且已经从文本中分离出一个特定的行:

代码语言:javascript
复制
ANBL  1      2    345678    0.9   01.2  34                56.     7.8

使:

第1-4栏= "ANBL“

第6-7栏=“1”

第10-11栏=“”

第13-14栏=“2",

等等,

是否有一种有效的方法从第6-7、10-11和13-14栏中读取信息?在解码文本文件时,可能会出现一些值,而其他值则不存在。但是,我知道如果信息存在的话,信息将显示在哪里的特定列号。向here提出了一个类似的问题,但在这种情况下,接受的答案是行不通的,因为字符串上的.split()会跳过可能包含信息的值。

若要指定,则所有列都由空格分隔,且每一行中的数字并不相同。这方面的一个例子是比较以下几行:

代码语言:javascript
复制
F014785236969    2          5  4  7.00 41.00   9    3.11         5.4         1.1
AJ51648705469    3        003002  1.60 13.00  17     7.0   6.0   5.4 20.00   2.2
EN

回答 1

Stack Overflow用户

发布于 2017-07-24 20:24:40

如果您的文件中的数据的结构方式使您的“列”始终位于相同的字符位置,则只需使用切片获取所需的内容:

代码语言:javascript
复制
line = "ANBL  1      2    345678    0.9   01.2  34                56.     7.8"
print(line[0:4]) # >> ANBL

如果您知道每个col从哪里开始和结束,您可以提前定义它并执行类似的操作(使用第二个示例中的数据作为test.txt的内容):

代码语言:javascript
复制
# Location of columns
cols = [(0,13), (17,18), (26,29), (29,32), (33, 38), (39, 44)]


with open('test.txt', 'r') as f:
    for line in f.readlines():
        data = [line[c[0]:c[1]] for c in cols]
        print(data)

指纹:

代码语言:javascript
复制
['F014785236969', '2', '  5', '  4', ' 7.00', '41.00']
['AJ51648705469', '3', '003', '002', ' 1.60', '13.00']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45286642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档