首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文本文件内容读取到列表中

将文本文件内容读取到列表中
EN

Stack Overflow用户
提问于 2018-03-15 11:24:26
回答 3查看 58关注 0票数 0

我有一个文本文件,其中包含:

代码语言:javascript
复制
1:PAPER TOWNS,TOMORROWLAND
2:ENTOURAGE,JUPITER ASCENDING

我计划将它们读入一个输出如下的列表中:

代码语言:javascript
复制
[[1,'PAPERTOWNS','TOMORROWLAND'],[2,'ENTOURAGE','JUPITERASCENDING']]

我写过:

代码语言:javascript
复制
def read_file():
    fileName = "testing.txt"
    testFile = open(fileName)
    table = []

    for line in testFile:
        contents = line.strip().split(':')
        contents[0] = int(contents[0])
        contents[1] = contents[1].replace(' ','')
        table.append(contents)
    print(table)

我几乎成功地得到了我想要的输出,但我想不出一种方法来将字符串与:

代码语言:javascript
复制
[[1,'PAPERTOWNS,TOMORROWLAND'],[2,'ENTOURAGE,JUPITERASCENDING']]

代码语言:javascript
复制
[[1,'PAPERTOWNS','TOMORROWLAND'],[2,'ENTOURAGE','JUPITERASCENDING']]
EN

回答 3

Stack Overflow用户

发布于 2018-03-15 11:28:15

您可以用逗号分隔第二个元素。

演示

代码语言:javascript
复制
def read_file():
    fileName = "testing.txt"
    testFile = open(fileName)
    table = []

    for line in testFile:
        contents = line.strip().split(':')
        table.append([int(contents[0])] + contents[1].split(","))
    print(table)

输出:

代码语言:javascript
复制
[[1, 'PAPER TOWNS', 'TOMORROWLAND'], [2, 'ENTOURAGE', 'JUPITER ASCENDING']]

使用正则表达式的

代码语言:javascript
复制
import re
def read_file():
    fileName = "testing.txt"
    testFile = open(fileName)
    table = []

    for line in testFile:
        contents = re.split("[,:]+", line.strip())
        table.append(contents)
    print(table)

输出:

代码语言:javascript
复制
[['1', 'PAPER TOWNS', 'TOMORROWLAND'], ['2', 'ENTOURAGE', 'JUPITER ASCENDING']]
票数 1
EN

Stack Overflow用户

发布于 2018-03-15 11:33:45

这是关于熊猫的一行代码。您的文件类似于CSV文件,只是分隔符可以是冒号或逗号,因此我们使用正则表达式:

代码语言:javascript
复制
import pandas as pd

df = pd.read_csv('file.txt', header=None, sep=r'[:,]')
票数 0
EN

Stack Overflow用户

发布于 2018-03-15 12:38:39

您可以按多个分隔符拆分字符串:

代码语言:javascript
复制
import re
print([[int(re.split(':|,', line.strip())[0])]+re.split(':|,', line.strip())[1:] for line in open('text_file','r')])

输出:

代码语言:javascript
复制
[[1, 'PAPER TOWNS', 'TOMORROWLAND'], [2, 'ENTOURAGE', 'JUPITER ASCENDING']]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49291083

复制
相关文章

相似问题

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