所以,我有各种txt文件,里面填充了按列表组织的单词,我想创建一个文件,其中包含每个txt文件的元素,这些文件也在另一个txt文件中。我试过这个:
cadena = []
cadena_dos = []
seccion = ""
filename_LISTA = "LISTA_FINAL.txt"
linea_vacia = "\n"
espaciador = "----------------------------------------------\n"
cacho = " "
repeticiones = []
cachito = " | "
inicio = "Is also in "
espacio = ", "
fe = open(filename_LISTA, "w")
nombres = ["ONE", "TWO", ... "ELEVEN"]
for i in range (0, len(nombres)):
filename = nombres[i]
filename_a = filename + ".txt"
filename_b = filename + "\n"
linea = str(cacho)
fe.write(linea)
linea = str(nombres[i])
fe.write(linea)
linea = str(linea_vacia)
fe.write(linea)
linea = str(linea_vacia)
fe.write(linea)
with open(filename_a) as f:
data = f.readlines()
for n, line in enumerate(data, 1):
cadena.insert(n-1, line.rstrip())
normal = str(cadena [n-1])
for p in range (1, len(nombres)):
filename_dos = nombres[p]
filename_a_dos = filename + ".txt"
if filename_a != filename_a_dos:
with open(filename_a_dos) as t:
data = t.readlines()
for r, line in enumerate(data, 1):
cadena_dos.insert(n-1, line.rstrip())
normal_dos = str(cadena_dos [n-1])
if normal == normal_dos:
repeticiones.append(filename_dos)
if len(repeticiones) > 0:
linea = normal
fe.write(linea)
linea = str(cacho)
fe.write(linea)
linea = str(cachito)
fe.write(linea)
linea = str(inicio)
fe.write(linea)
for cont in range (0, len(repeticiones)):
linea = str(repeticiones[cont])
print repeticiones[cont]
fe.write(linea)
if cont < len(repeticiones):
linea = str(espacio)
fe.write(linea)
else:
linea = str(linea_vacia)
fe.write(linea)
else:
linea = str(linea_vacia)
fe.write(linea)
repeticiones = []
linea = str(linea_vacia)
fe.write(linea)
linea = str(espaciador)
fe.write(linea)
linea = str(linea_vacia)
fe.write(linea)
fe.close()
但没有做任何事情。问题是,如果我将线路延长
"filename_a != filename_a_dos:"
程序开始运行但开始在同一个txt文件中找到巧合。任何人都可以帮忙做到这一点吗?
答案 0 :(得分:0)
您使用外循环filename_a_dos
创建filename
值,而不是内循环filename_dos
。这意味着filename_a_dos
将始终与filename_a
相同,因为它们都是filename + ".txt"
。
您可以使用itertools.combinations
进一步改善您的循环,而不是在文件名列表上循环两次,但这是一个更大的变化,与您当前遇到的问题没有直接关系。
答案 1 :(得分:0)
多数民众赞成因为filename_a和filename_a_dos的值始终相同,所以内容
filename_a!= filename_a_dos:
不会工作。
我想你可能意味着
filename_a_dos = filename_dos +“。txt”