Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于txt文件中的条目创建具有名称的文件_Python_Loops_File - Fatal编程技术网

Python 基于txt文件中的条目创建具有名称的文件

Python 基于txt文件中的条目创建具有名称的文件,python,loops,file,Python,Loops,File,我有一个有名字的txt文件。我想创建具有以下名称的文件: firstnameLastname.txt 这些名称也出现在文件中。 目前它工作正常,但它在名为“.txt”的空文件上创建 有人能告诉我为什么吗?如果我是对的,那么问题应该在循环中。添加If语句以防止在空行上创建文件 编辑 i = 1 with open("randomStuff\\test\\brief.txt") as textFile: lines = [line.split('\n') for line in textFi

我有一个有名字的txt文件。我想创建具有以下名称的文件: firstnameLastname.txt 这些名称也出现在文件中。 目前它工作正常,但它在名为“.txt”的空文件上创建
有人能告诉我为什么吗?如果我是对的,那么问题应该在循环中。

添加If语句以防止在空行上创建文件

编辑

i = 1
with open("randomStuff\\test\\brief.txt") as textFile:
    lines = [line.split('\n') for line in textFile]
for row in lines:
    for elem in row:
        with open(elem + ".txt", "w") as newLetter:
            newLetter.writelines(elem)
            i += 1

Continue将跳转到下一个循环周期,而不执行以下代码

我不知道为什么有这么多循环:

i = 1
with open("randomStuff\\test\\brief.txt") as textFile:
    lines = [line.split('\n') for line in textFile]
for row in lines:
    for elem in row:
        if elem == “”:
            continue
        with open(elem + ".txt", "w") as newLetter:
            newLetter.writelines(elem)
            i += 1

brief.txt
可能在某个地方有一个空行。听起来文本文件中有一个空行,可能在结尾?为什么不在循环之前检查
是否为空?注意,对于行中的元素,.brieft.txt没有空行是非常标准的:这是干什么用的?
不是字符串吗?为什么需要在不首先拆分的情况下循环它?请提供您的文本文件示例,以及
行[-1]
的值是多少?如果elem:with…,那么您不需要
继续
.thx获得帮助,为什么不
。我不知道为什么,但我先试过了。可能是个小错误:我就是这样。解决问题的方法有很多种,想用什么就用什么。
from pathlib import Path

text_file_content = Path("randomStuff/test/brief.txt").read_text().split_lines()
for line in text_file_content:
    if line:  # in case you have a new line at the end of your file, which you probably should
        with open(f"{line}.txt", "w") as new_letter:
            new_letter.writelines(line)