8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 for 循环中写入文件仅写入最后一个值

user1717828 1月前

47 0

text_file = open(\'new.txt\', \'r\')lines = text_file.readlines()for line in lines: var1, var2 = line.split(\',\'); myfile = open('xyz.txt', 'w') ...

text_file = open("new.txt", "r")
lines = text_file.readlines()

for line in lines:
        var1, var2 = line.split(",");
        myfile = open('xyz.txt', 'w')
        myfile.writelines(var1)
        myfile.close()

text_file.close()

我在 new.txt 中有 10 行文本,例如 Adam:8154 , George:5234 ,等等。现在我想要一个仅包含名称的文本文件。 xyz.txt 必须包含 Adam , George ,等等。上面的代码只给我留下了第 10 个名字。

如何将所有 10 个名称保存在一个文本文件中?

帖子版权声明 1、本帖标题:在 for 循环中写入文件仅写入最后一个值
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由user1717828在本站《python-2.7》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 这是因为您在 for 循环中打开、写入和关闭文件 10 次。在 w 模式下打开文件会删除之前文件中的内容,因此每次打开文件时,之前迭代写入其中的内容都会被删除。

    myfile = open('xyz.txt', 'w')
    myfile.writelines(var1)
    myfile.close()
    

    您应该在 for 循环之外打开和关闭文件。

    myfile = open('xyz.txt', 'w')
    for line in lines:
        var1, var2 = line.split(",");
        myfile.write("%s\n" % var1)
        
    myfile.close()
    text_file.close()
    

    您还应该注意 使用 write 不是 writelines .

    writelines 将行列表写入您的文件。

    另外,您还应该查看这里使用 with 语句的人们发布的答案。这是在 Python 中执行文件读/写操作的优雅方法

返回
作者最近主题: