读取文件并剥离\n并拆分lis

2024-10-03 17:24:06 发布

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

我有一个作业,我必须读一个文件”文字.csv“:

Hemuli,Muumipappa,13,4
Abbath,Fenriz,6,6

我应该打印如下:

^{pr2}$

目前我的代码:

def nayta_tulokset(words):
    with open(words) as tulos:
        tulokset = tulos.read()
        a = tulokset.split(",")
        print(a)

这给了我一个下面的list

['Hemuli', 'Muumipappa', '13', '4\nAbbath', 'Fenriz', '6', '6']

这正是我想要的,但是我如何继续去除这些\n?“4”和“abath”应该在它们自己的索引中。好像搞不清楚。。。之后我可以使用索引并用format()打印出来。在


Tags: 文件csv代码def作业words文字pr2
3条回答

使用list comprehension和上述字符串格式的解决方案可以是:

def nayta_tulokset(words):
    with open(words, 'r') as f:
        return list(map(lambda x:"{} {} - {} {}".format(x[0],x[2],x[3],x[1]), map(lambda x:x.split(','),f.read().split())))

所以

^{pr2}$

为了得到您想要的输出,您需要分别读取每一行并按预期打印出来。在

在你的代码上,建立你可以继续的方法

def nayta_tulokset(words):
    with open(words) as tulos:
        for line in tulos.read().split('\n'):
           a = line.split(",")
           print("{} {} - {} {}".format(a[0], a[2], a[3], a[1]))

您可以使用tulos.read().split('\n'),而不是使用tulos.readlines(),它将负责将文件读入行列表。因此,重构后,代码将如下所示:

^{pr2}$

更多详情: 我想代码中唯一有点模棱两可的部分是:

"{} {} - {} {}".format(a[0], a[2], a[3], a[1])

相当于以下字符串串联:

 a[0] +" " + a[2] +" - " + a[3] + " " +a[1]

阅读时可以使用splitlines()

def nayta_tulokset(words):
    with open(words) as tulos:
        return tulos.read().splitlines()

# output: ['Hemuli,Muumipappa,13,4', 'Abbath,Fenriz,6,6']

然后拆分字符串.split(',')

^{pr2}$

相关问题 更多 >