Python 3.x - 将生成的字母作为列表写入文本文件

时间:2017-03-18 17:43:21

标签: python python-3.x

(代码在大部分时间都是相同的bcs 我有一个问题:我写了一个程序,根据用户的意愿生成单词/数字,我希望它们在txt文件中打印。每行1个字。 问题是,如果我这样做(见下文),它适用于只有2个字母的所有数字/单词。当我使用3个以上的字母时,它看起来像这样:

(每行一个,不知道如何在该帖子中这样做..) 一个 一个 AA 一个 BA 一个 CA 一个 DA 一个 EA 一个 F A 一个 GA 一个 哈 一个 IA 一个 JA 一个 K A 一个 LA 一个 嘛 一个 NA 一个 OA 一个 PA 一个 QA 一个 RA 一个 SA 一个 TA 一个 UA 一个 VA 一个 WA 一个 XA 一个 YA 一个 ZA 乙 AA 乙 BA 乙 CA 乙

cmd中的输出是正确的,但是txt文件是错误的。那么,我有什么不对吗? (ps。不要责怪我这个糟糕的代码,而不是最好的ik) (pps希望你用德语解读代码bcs的写作:/)

from colorama import Fore
from colorama import init
from os import system
import itertools

AZ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"


init()

def Menu1():
    print(Fore.GREEN + "Dies ist ein Listengenerator. Bitte wähle deine Einstellungen")
    print(Fore.CYAN + "Grossbuchstaben: ", Fore.RED + "1")
    print(Fore.CYAN + "Kleinbuchstaben: ", Fore.RED + "2")
    print(Fore.CYAN + "Gross- & Kleinbuchstaben: ", Fore.RED + "3")
    print(Fore.CYAN + "Zahlen: ", Fore.RED + "4")
    print(Fore.CYAN + "Grossbuchstaben & Zahlen: ", Fore.RED + "5")
    print(Fore.CYAN + "Kleinbuchstaben & Zahlen: ", Fore.RED + "6")
    print(Fore.CYAN + "Gross & Kleinbuchstaben sowie Zahlen: ", Fore.RED + "7")
    print(Fore.CYAN + "")
    user_input = input("")
    global x
    if user_input == "1":
        x=1

Menu1() 

if x==1:
    def x1():
        with open("Grossbuchstaben.txt", "w") as f:
            x = int(input("Minimale Zeichenlänge: "))
            y = int(input("Maximale Zeichenlänge: "))
            for n in range(x, y+1):
                for xs in itertools.product(AZ, repeat=n,):
                    f.write("\n".join(xs))
                    print("".join(xs)) #shows letters in console for seeing when its done
if x==1:
    x1()

1 个答案:

答案 0 :(得分:0)

如果你说python解释器中的输出是正确的但是文件的输出是错误的,那么也许你应该尝试写同样的东西。

在您的代码中输出到文件

"\n".join(xs)

但输出到解释器

"".join(xs)

第一个将xs的所有元素与它们之间的换行连接起来,而第二个将只连接xs的所有元素,它们之间没有任何内容。

您可能想要

f.write("".join(xs) + "\n")