我是个新手,还是个新手.我想做大约.txt个文件和他们的内容从这,但我看到它只对第一个列表(列表),这将是在文件名.而且所有的物品都是制作出来的.但是第二个列表(ListB)不起作用,它只显示最后一项("3").请帮帮我.

listA = ["one", "two", "three"]
listB = ["1", "2", "3"]

for item in listA:
  for item2 in listB:
    with open("random{}.txt".format(item), "w") as f:
        f.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
        f.write("\nLorem ipsum dolor sit amet, consectetur {} adipiscing elit.".format(item2))
        f.write("\nLorem ipsum dolor sit amet, consectetur adipiscing elit.")

编辑:我已try 更改代码,

listA = ["one", "two", "three"]
listB = ["1", "2", "3"]

for item in listA:
    with open("random{}.txt".format(item), "a") as f:
        for item2 in listB:
            f.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
            f.write("\nLorem ipsum dolor sit amet, consectetur {} adipiscing elit.".format(item2))
            f.write("\nLorem ipsum dolor sit amet, consectetur adipiscing elit.")

这是每个文件…中的结果

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur 1 adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur 2 adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur 3 adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

我预计这些占位符应该在每个文件中按顺序出现一次.

编辑:这就是我想要做的.对于randomone.txt美元,

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur 1 adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

对于randomtwo.txt人来说,

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur 2 adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

…等

推荐答案

将第二个for循环移到With语句中.

您当前的代码正在为listB上的每个项目覆盖您的文件,只保留最后修改的版本(即item2="3").

for item in listA:
    with open("random{}.txt".format(item), "w") as f:
        for item2 in listB:
            f.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
            f.write("\nLorem ipsum dolor sit amet, consectetur {} adipiscing elit.".format(item2))
            f.write("\nLorem ipsum dolor sit amet, consectetur adipiscing elit.")

您也可以保持当前代码并以append模式('a')打开文件,但仅仅为了重新打开文件而关闭文件效率会很低.

编辑:仅重复/更新中线

for item in listA:
    with open("random{}.txt".format(item), "w") as f:
        f.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
        for item2 in listB:
            f.write("\nLorem ipsum dolor sit amet, consectetur {} adipiscing elit.".format(item2))
        f.write("\nLorem ipsum dolor sit amet, consectetur adipiscing elit.")

编辑2:ListA和ListB上的并行循环

使用zip

for itemA, itemB in zip(listA, listB):
    with open("random{}.txt".format(itemA), "w") as f:
        f.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
        f.write("\nLorem ipsum dolor sit amet, consectetur {} adipiscing elit.".format(itemB))
        f.write("\nLorem ipsum dolor sit amet, consectetur adipiscing elit.")

Python相关问答推荐

如何记录脚本输出

如何创建一个缓冲区周围的一行与manim?

基于索引值的Pandas DataFrame条件填充

无法在Docker内部运行Python的Matlab SDK模块,但本地没有问题

如何在FastAPI中为我上传的json文件提供索引ID?

可以bcrypts AES—256 GCM加密损坏ZIP文件吗?

旋转多边形而不改变内部空间关系

未调用自定义JSON编码器

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

替换现有列名中的字符,而不创建新列

从一个df列提取单词,分配给另一个列

使用SeleniumBase保存和加载Cookie时出现问题

多个矩阵的张量积

浏览超过10k页获取数据,解析:欧洲搜索服务:从欧盟站点收集机会的微小刮刀&

在Pandas 中以十六进制显示/打印列?

奇怪的Base64 Python解码

如何在Polars中处理用户自定义函数的多行结果?

在被零整除的情况下,Python不遵循IEEE-754吗?

我应该使用哪一个来判断python中枚举值的唯一性?

如何从多个词典中制作Pandas 数据帧?