首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不知道如何拆分.dat文件行

不知道如何拆分.dat文件行
EN

Stack Overflow用户
提问于 2019-03-13 13:53:01
回答 2查看 846关注 0票数 1

因此,我有一个项目,它需要我读取一个.dat文件并将其转换为表,.dat文件是这样的:

代码语言:javascript
复制
50123456_lam tai man_70.0_60.0_
50223456_li tai man_60.0_90.5_
50323456_wong tai man_34.5_30.0_
50423456_ng tai man_90.5_70.0_
50523456_lau tai man_86.0_92.4_
50623456_chui tai man_70.0_64.5_
50723456_lim tai man_64.5_60.0_
50823456_pok tai man_37.5_35.50_
50923456_kim tai man_92.4_60.0_
50023456_tsang tai man_15.0_20.0_
50999999_chan peter_100.00_80.00_

我希望通过它们的下划线来拆分这些行,这样我就可以为每个元素创建一个列表。作为一个业余爱好者,我现在只能将文件导入到我的程序中,我仍然需要找出将行分割成可用的变量的方法。

这是正在讨论的导入程序:

代码语言:javascript
复制
import matplotlib.pyplot as plt
import fileinput
import sys

def main():
    lineNum = 0
    for line in fileinput.input('markdata.dat'):
        lineNum += 1
        sys.stdout.write(str(lineNum)+' ')
        sys.stdout.write(line)
    pass

if __name__ == "__main__":
    main()

如果有人愿意帮忙,我将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-13 14:02:12

如果你想做的就是用下划线拆分的话,csv库应该能满足你的需求。下面是一个例子;只需将分隔符改为下划线即可。

代码语言:javascript
复制
import csv

with open('my_sample_data.dat') as f: 
    reader = csv.reader(f, delimiter=',')

    for row in reader:
        print(row)

>>>
['Date', 'Time', 'Event', 'OrgID', 'Email']
['12/15/2018', '6:55:41 AM', 'abc', '1', 'abc@email.com']
['12/15/2018', '1:36:39 PM', 'def', '2', 'def@email.com']
['12/15/2018', '2:21:56 PM', 'com', '3', 'com@email.com']
票数 0
EN

Stack Overflow用户

发布于 2019-03-13 14:10:31

处理这类dat文件的好方法是使用pandas库。您在Dataframe中读取此文件,并使用分隔符作为下划线。

代码语言:javascript
复制
import pandas as pd
df = pd.read_csv('sample.dat',delimiter='_',header=None)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55135258

复制
相关文章

相似问题

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