为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Python 从同一个文本文件中分离不同的输入格式

如何使用 Python 从同一个文本文件中分离不同的输入格式

莫回无 2021-11-02 15:33:04
我是编程和 python 的新手,我正在寻找一种方法来区分同一输入文件文本文件中的两种输入格式。例如,假设我有一个像这样的输入文件,其中的值以逗号分隔:5华盛顿,A,10纽约,B,20西雅图,C,30波士顿,B,20亚特兰大,D,502纽约,5波士顿,10其中格式为N后N行 Data1,M后M行 Data2。我尝试打开文件,逐行读取并将其存储到一个列表中,但我不确定如何为 Data1 和 Data2 生成 2 个列表,这样我会得到:Data1 = ["Washington,A,10", "New York,B,20", "Seattle,C,30", "Boston,B,20", "Atlanta,D,50"]Data2 = ["纽约,5", "波士顿,10"]我最初的想法是遍历列表,直到找到整数i,从列表中删除整数并继续进行下一次i迭代,同时将后续值存储在单独的列表中,直到找到下一个整数,然后重复。但是,这会破坏我的初始列表。有没有更好的方法来分隔不同列表中的两种数据格式?
查看完整描述

3 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

你绝对是在正确的轨道上。如果您想在此处保留原始列表,则实际上不必删除整数i;你可以继续下一个项目。


代码:


originalData = []

formattedData = []


with open("data.txt", "r") as f :

    f = list(f)

    originalData = f

    i = 0

    while i < len(f): # Iterate through every line

        try:

            n = int(f[i]) # See if line can be cast to an integer

            originalData[i] = n # Change string to int in original

            formattedData.append([])

            for j in range(n):

                i += 1

                item = f[i].replace('\n', '')

                originalData[i] = item # Remove newline char in original

                formattedData[-1].append(item)

        except ValueError:

            print("File has incorrect format")

        i += 1


print(originalData)

print(formattedData)


查看完整回答
反对 回复 2021-11-02
  • 3 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号