首页 > 解决方案 > 在一行上组合并打印不同的变量

问题描述

我正在 Python 3 上制作一个简单的脚本。我有一个用户名、颜色和数字的列表。它们中的每一个都由 .txt 文件中的行分隔,如下所示:

文件图片:

在此处输入图像描述

这是代码:

user = open('user.txt', 'r').readlines()
color = open('color.txt', 'r').readlines()
number = open('number.txt', 'r').readlines()

for u in user:
    for c in color:
        for n in number:
            generated = u+c+n
            print(generated)
            open('generated.txt', 'a+').write(generated)

前 100 个输出: https ://pastebin.com/Dc07ApbL

但我想要这样的东西:

solvethisproblem_userwhite1
solvethisproblem_userwhite2
solvethisproblem_userwhite3
solvethisproblem_userwhite4
solvethisproblem_userwhite5
solvethisproblem_userwhite6
solvethisproblem_userwhite7
solvethisproblem_userwhite8
solvethisproblem_userwhite9
solvethisproblem_userwhite10
solvethisproblem_userblack1
solvethisproblem_userblack2
solvethisproblem_userblack3
solvethisproblem_userblack4
solvethisproblem_userblack5
solvethisproblem_userblack6
solvethisproblem_userblack7
solvethisproblem_userblack8
solvethisproblem_userblack9
solvethisproblem_userblack10
solvethisproblem_useryellow1
solvethisproblem_useryellow2
solvethisproblem_useryellow3

标签: pythonpython-3.xfilefor-loopwrite

解决方案


只需更换

user = open('user.txt', 'r').readlines()
color = open('color.txt', 'r').readlines()
number = open('number.txt', 'r').readlines()

user = open('user.txt', 'r').read().splitlines()
color = open('color.txt', 'r').read().splitlines()
number = open('number.txt', 'r').read().splitlines()

并替换generated = u + c + ngenerated = u + c + n + "\n".

str.splitlines()方法删除\n会导致换行符的字符。

with但请注意,使用关键字打开文件是更好的做法:

with open('user.txt') as u, open('color.txt') as c, open('number.txt') as n:
    user = u.read().splitlines()
    color = c.read().splitlines()
    number = n.read().splitlines()

推荐阅读