我有一个作业,我必须阅读一个文件“words.csv”:
https://jobs.et/jobs/?searchId=1509738711.5142&action=search&page=2
我应该按照以下方式打印出来:
Hemuli,Muumipappa,13,4
Abbath,Fenriz,6,6
到目前为止我的代码:
Hemuli 13 - 4 Muumipappa
Abbath 6 - 6 Fenriz
这为我提供了以下 def nayta_tulokset(words):
with open(words) as tulos:
tulokset = tulos.read()
a = tulokset.split(",")
print(a)
:
list
这正是我想要的,但如何继续删除 \ n ? “4”和“Abbath”应该在他们自己的索引中。似乎无法弄明白......之后我可以使用索引并使用format()打印出来。
答案 0 :(得分:4)
您可以在阅读时使用splitlines()
def nayta_tulokset(words):
with open(words) as tulos:
return tulos.read().splitlines()
# output: ['Hemuli,Muumipappa,13,4', 'Abbath,Fenriz,6,6']
然后拆分字符串.split(',')
for i in nayta_tulokset(words):
_f = i.split(",")
print("{} {} - {} {}".format(_f[0], _f[-2], _f[-1], _f[1]))
# Hemuli 13 - 4 Muumipappa
# Abbath 6 - 6 Fenriz
答案 1 :(得分:1)
为了获得您想要的输出,您需要单独读取每一行并按预期打印出来。
在您的代码上建立如何继续
dd["one"].extend(l)
而不是使用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()
更多详情: 我想代码中唯一有些含糊不清的部分如下:
def nayta_tulokset(words):
with open(words) as tulos:
for line in tulos.readlines():
a = line.split(",")
print("{} {} - {} {}".format(a[0], a[2], a[3], a[1]))
这相当于以下字符串连接:
"{} {} - {} {}".format(a[0], a[2], a[3], a[1])
答案 2 :(得分:1)
使用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())))
所以
nayta_tulokset('words.csv')
['Hemuli 13 - 4 Muumipappa', 'Abbath 6 - 6 Fenriz']
答案 3 :(得分:0)
您可能想要使用正则表达式。像这样:
import re
def nayta_tulokset(words):
with open(words) as tulos:
tulokset = tulos.read()
#a = re.findall(r"[\w']+", tulokset)
a = re.split(",\n", tulokset)
这应该给你:
['Hemuli', 'Muumipappa', '13', '4', 'Abbath', 'Fenriz', '6', '6']