【问题标题】:Appending text onto text file line by line Python逐行将文本附加到文本文件上 Python
【发布时间】:2021-09-03 15:47:45
【问题描述】:

我有 2 个数组,其中一个是歌曲名称,一个是艺术家名称,艺术家名称数组中的数字 1 是歌曲名称数组中数字 1 的艺术家,依此类推。目前我已经通过使用 for 循环将所有歌曲名称放在一个文本文件中,但我想将艺术家姓名放在同一个文本文件中相应歌曲的名称旁边。 显然,下面的代码不是实际代码,但如果我想要真正的代码做类似的事情。抱歉,如果这是一个令人困惑的问题

with open('songs.txt', 'r+') as f:
    for x in songnames:
        f.write(x + FOR I IN ARTISTS WRITE I)
    

【问题讨论】:

  • 请分享更多代码。告诉我们文件的内容
  • 正如 Sujay 提到的,请与我们分享您将歌曲名称存储在文本文件中的格式,以便我们可以提供一种解决方案,将艺术家姓名放在这些歌曲名称旁边。
  • @SamVarghese 格式是什么意思?文本文件最初是空的,但在使用 for 循环添加歌曲名称后(没有特定数量的歌曲名称,它根据用户输入而变化),文件的每一行都有一个歌曲名称。我想在歌曲名称旁边添加歌曲艺术家,但不知道如何。
  • 你为什么不一次写歌+艺术家到文件呢?这比先写歌,然后在后面加上艺术家的名字更容易。
  • @adamkwm 因为所有歌曲和所有艺术家都在 2 个不同的数组中,我可以轻松地使用 for 循环并编写其中一个数组的每个元素,但我不知道该怎么做两个都。如果有办法逐个元素合并数组,它也可以解决我的问题,例如:输入:array1 = [1, 2, 3] array2 = [7, 8, 9] 输出:array3 = [1 7, 2 8 , 3 9]

标签: python arrays python-3.x for-loop file-handling


【解决方案1】:

如果数组有对应的元素,可以使用zip(),像这样:

with open('songs.txt', 'r+') as f:
    for song, artist in zip(songnames, artists):
        f.write("%s: %s\n" % (song, artist))

【讨论】:

  • @Bpython 也可以按索引,for i in range(len(songs)): f.write(f"{songs[i]} {artists[i]}\n")。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
  • 2018-05-05
相关资源
最近更新 更多