如何格式化所有其他行以与其之前的行合并? (Python)

2024-01-17

我一直在与 beautiful soup 合作,从网站 API 中提取数据,以便在我正在构建的粉丝网站中使用。

我已将数据提取到文本文件中,但在格式化它时遇到问题。

Charles Dance
Lord Tywin Lannister (S 02+)
Natalie Dormer
Queen Margaery Tyrell (S 02+)
Harry Lloyd
Viserys Targaryen (S 01)
Mark Addy
King Robert Baratheon (S 01)
Alfie Allen
Theon Greyjoy
Sean Bean
Lord Eddard Stark (S 01)

我有几个这样的文本文件用于演示。 我希望演员和角色在同一行上,并用逗号分隔,以便稍后输入数据库。

Charles Dance , Lord Tywin Lannister (S 02+)
Natalie Dormer , Queen Margaery Tyrell (S 02+)
Harry Lloyd , Viserys Targaryen (S 01)
Mark Addy , King Robert Baratheon (S 01)
Alfie Allen , Theon Greyjoy
Sean Bean , Lord Eddard Stark (S 01)

如果有人可以提供任何帮助或指示,我们将不胜感激。

Solved:

非常感谢 Tdelaney 和 wnnmaw。你是真正的 MVP

def readline(fp):
#Read a line from a file, strip new line and raise Indexerror
#on end of file
line = fp.readline()
if not line:
    raise IndexError()
return line.strip()

with open('Casts/GOTcast.txt') as in_file, open('GOTcastFIXED.txt', 'w') as out_file:
try:
    while True:
        out_file.write("%s, %s\n" % (readline(in_file), readline(in_file)))
except IndexError:
    pass

这应该有效:

>>> lst = ["a", "A", "b", "B", "c", "C"]
>>> lines = [" , ".join(tup) for tup in zip(lst[::2], lst[1::2])]
>>> lines
['a , A', 'b , B', 'c , C']

您可以像这样读取文本文件:

with open("yourfile.txt", 'r') as f:
    lines = f.readlines()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何格式化所有其他行以与其之前的行合并? (Python) 的相关文章

随机推荐