【问题标题】:how to write items in string on a new line如何在新行上写入字符串中的项目
【发布时间】:2020-03-27 05:21:29
【问题描述】:

我对python很陌生,所以在我尝试解释我的问题时请多多包涵:)

给出的说明:

  1. 对于“列表”中的每个项目,将该项目在新行中写入“文件名”指定的文件末尾。
  2. list = [this, is, a, sentence]
  3. def newlines (filename, list):

我在网上找到了一个有效的代码,但它涉及 f.seek(0),我们还没有学会使用 seek 或在 () 中放置一个数字。我只是想知道是否有另一种“更简单”的方式来写这个。

提前致谢!

【问题讨论】:

    标签: python python-3.x file newline


    【解决方案1】:

    我不确定这是否是您想要的。但是让我把我的答案放在这里供你检查。

    def newlines(l):
        f = open("newfile.txt", "w+")
        for i in l:
            f.write(i+"\n")
        f.close()
    
    ls = ["this", "is", "a", "sentence"]
    newlines(ls)
    

    如果它不存在,这将创建一个新文件并逐行写入列表的内容。

    希望这会有所帮助!

    【讨论】:

    • 就像@Suraj 提到的那样,您可以使用“a”而不是“w”,以防这不是您要添加到文件中的唯一列表。 "a" 将列表元素附加到文件的末尾。
    • 没问题!我可以看看回溯以帮助您解决错误吗?因为@Suraj 的代码对我来说非常好用,没有错误。
    • 你的文件和你的代码在同一个位置吗?你也不必害怕你的教授,这只是你有一个疑问:)
    • 确保您的代码和文本文件位于同一位置。
    • 这可能是原因。否则代码工作得很好。无论如何,我希望你得到你想要的答案!不要忘记accept the best answer 来回答您的问题!
    【解决方案2】:
    with open('filename.txt', 'w') as f:
        for item in l:
            f.write(item+'\n')
    

    如果这是您要写入文件的唯一列表,请使用'w' 选项。否则,您可以使用 append 'a' 选项将字符串附加到文件末尾。

    根据@Jon Clements 的评论,您可以按如下方式替换 for 循环:

    with open('filename.txt', 'w') as f:
        print(*the_list, sep='\n', file=f)
    

    【讨论】:

    • 我假设list = ['this', 'is', 'a', 'sentence']
    • 代替循环...也可以使用:print(*the_list, sep='\n', file=f)...
    【解决方案3】:

    这是我的答案。您可以尝试一下并相应地更改您的代码。

    def newlines(filename,list):
    f=open(filename+".txt","w+")
    for i in list:
        f.write(i+"\n")
    f.close()
    
    ls = [this, is, a, sentence]
    newlines("test",ls)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多