Запись в файл всех комбинаций
Есть код для вывода комбинации пин-кода
from itertools import product
for combos in product('0123456789', repeat=4):
S = ''.join(combos)
if S.find('BC') == -1 and S.find('CC') == -1:
filee = open("pins.txt", "w")
filee.write(S)
filee.close()
В txt файле только одна комбинация "9999"
Как вывести все комбинации?
Ответы (2 шт):
Автор решения: Pavel Durmanov
→ Ссылка
In [1]: from itertools import product
In [2]: combinations = []
In [3]: for combos in product("0123456789", repeat=4):
...: combinations.append("".join(combos))
...:
In [4]: with open("data.txt", "w") as fp:
...: fp.write("\n".join(combinations))
Автор решения: Стас
→ Ссылка
Когда вы открываете файл так: open("file.txt", "w") вы уничтожаете старый файл, создаёте новый пустой и пишете в него.
Из за постоянного переоткрытия файла в цикле вы постоянно перезаписываете старый. Вот у вас и есть результат только от последней итерации.
Лучше открывайте файл перед циклом - это уменьшит кол-во обращений к диску и увеличит скорость работы программы.
Но если вы все же хотите постоянно переоткрывать файл - используйте: open ("file.txt", "a"). Это будет дописывать в конец файла новые данные.