Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 基于文本文件中的单词编写文本_Python_File_Sorting_Text_Write - Fatal编程技术网

Python 基于文本文件中的单词编写文本

Python 基于文本文件中的单词编写文本,python,file,sorting,text,write,Python,File,Sorting,Text,Write,我正试图根据文本块前面的名字是出现在民主党姓的文本文件中,还是出现在共和党姓的文本文件中,按政党将文本分为不同的文件。在我修复了额外字符的文本文件并将其正确设置后,以下代码一直不起作用: with open("RepublicanList.txt") as f: frepnames = list(f) with open("DemocratList.txt") as f: fdemnames = list(f) with open (&

我正试图根据文本块前面的名字是出现在民主党姓的文本文件中,还是出现在共和党姓的文本文件中,按政党将文本分为不同的文件。在我修复了额外字符的文本文件并将其正确设置后,以下代码一直不起作用:

with open("RepublicanList.txt") as f:
    frepnames = list(f)

with open("DemocratList.txt") as f:
    fdemnames = list(f)

with open ("TextFile.txt") as file:
    lines = file.read()
lines = lines.split(" ")

republican = ""
democrat = ""

for index, word in enumerate(lines):
    if(republican == "yeah"):
        for index2, word2 in enumerate(fdemnames):
            if(word == word2): 
                republican = ""
        if(republican == "yeah"):
            frepwrite.write(word + " ")
    else:
        for index3, word3 in enumerate(frepnames):
            if(word == word3):
                republican = "yeah"
                frepwrite.write("\n\n")
                frepwrite.write("Ms. " + word + " ")

frepwrite.close()
fdemwrite.close()
不管出于什么原因,共和党人的文本文件中根本没有写入任何文本。我知道文本中有匹配项(这是我第一次列出列表的方式),但它从来没有找到任何匹配项。我的目标是为共和党人做一次代码排序,然后将代码切换到民主党人的文件中

两个文件的名称文本文件看起来都类似于“NAME NAME2 NAME3 NAME4”。基本上,我想检查一个单词是否与共和党姓氏文本文件中的共和党姓氏匹配,如果匹配,则随后写下所有文本,直到它到达带有民主党演讲文本的民主党姓氏(显然,我不希望共和党文本文件中包含该文本)


提前感谢您的帮助,如果我能帮忙澄清任何事情,请告诉我

如果您使用的是
和open(filename)作为文件:
如果退出作用域,文件将自动关闭

>>将open('workfile')作为f:
...     read_data=f.read()
>>>#我们可以检查文件是否已自动关闭。
>>>f.关闭
真的
这是借用自

第二个错误是,如果使用
open(filename)
该文件将以readmode打开。因此,您必须明确地告诉python以读取模式打开它,就像这样
open(filename,“w”)


如果您使用的是打开(文件名)为文件的
如果退出作用域,文件将自动关闭

>>将open('workfile')作为f:
...     read_data=f.read()
>>>#我们可以检查文件是否已自动关闭。
>>>f.关闭
真的
这是借用自

第二个错误是,如果使用
open(filename)
该文件将以readmode打开。因此,您必须明确地告诉python以读取模式打开它,就像这样
open(filename,“w”)


文件是否关闭无关紧要,因为我将文件转换为仍然可以与之交互的列表/字符串?这就是frepnames、fdemnames和lines变量的含义。您只是将文本文件的内容复制到列表中,而不是复制文件指针。因此,每个操作都存储在该列表中,不会传输到该文件。您可以使用
type(frepnames)
->列表和
type(frepnames[0])
->字符串来检查这一点。这些只是普通类型,不是文件(指针),文件是否已关闭不是很重要,因为我将文件转换为仍然可以与之交互的列表/字符串?这就是frepnames、fdemnames和lines变量的含义。您只是将文本文件的内容复制到列表中,而不是复制文件指针。因此,每个操作都存储在该列表中,不会传输到该文件。您可以使用
type(frepnames)
->列表和
type(frepnames[0])
->字符串来检查这一点。这些只是普通类型,不是文件(指针)