当前位置: 首页 > 面试题库 >

在for循环中写入文件

劳和歌
2023-03-14
问题内容
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个名称。


问题答案:

那是因为您在for循环中打开,写入和关闭文件10次

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

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

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中执行文件读/写操作的优雅方法



 类似资料:
  • 问题内容: 嗨,我在nodejs脚本中使用了每个循环,以将多个文件写入本地位置。对于courseTitleArray,我在使用“ Biology 101,ruby”,并且我可以 成功 写入一个文件,但 不能同时 写入两个文件。请帮助我出来。 到目前为止,这是我的代码 在控制台中,我得到以下日志。 看起来循环工作正常,并且在日志中我可以看到两个标题。但是在撰写《生物学101,红宝石》时,已经执行了两

  • 我想在for循环中将列表写入csv文件,每次都在不同的列中。例如,第一次迭代生成一个list=[1,2,3,4,5],第二次迭代生成list=[1,2,3]。我想要输出。csv看起来像: 我得到了以下代码: 相反,输出看起来像这样: 上面所做的是继续编写第一列,并且在下一次迭代中不会更改为新列。如何让python这样做?

  • 问题内容: 我试图在for循环内发出几个服务器请求。我发现了[\这个问题,\并实施了建议的解决方案。但是,它似乎不起作用。 如果我删除了for循环并将所有xmlhttp [i]更改为xmlhttp,那么对于一个元素来说一切都很好,但是我无法发出多个请求。在此先感谢您的任何建议。 问题答案: 尝试下面的代码段 响应

  • 我正在尝试将POJO的jackson JSON字符串转换为JSON文件以导入MySQL。 我遇到的问题是,即使我在控制台中返回了JSON字符串,并且。json文件创建后,MySQL workbench抛出一个未处理的错误异常:bool()类型的对象没有长度 作为一个json文件,行为“true”。 如果我做文件被正确导入,但数据库中没有数据,如果被视为json,则只有一行。 我的POJO

  • 我正在编写一个计算e^x值的方法。我在python中实现它的方式如下。 这将很好地返回e^x的值。但是,当我尝试在c#中实现相同的方法时,它没有输出与python中相同的值。以下是c#中的实现。 起初,这段代码的输出是一个无穷大符号。为了解决这个问题,我只是减少了循环运行的次数。在c#中,循环只运行10次,代码的输出非常接近于python中循环运行100次的输出。我的问题是,在不同的编程语言中,两

  • 我试图在for循环中获得for循环,因此输出如下: 我希望输出显示一个正方形 我不知道它为什么不这样做。下面是我的代码: