为了账号安全,请及时绑定邮箱和手机立即绑定

无法将文件中的数据导入一行

无法将文件中的数据导入一行

动漫人物 2021-06-14 17:08:50
我目前正在制作我学校给我的这个程序,它是用 ASCII 文本艺术写下你自己的名字,但这只是复制和粘贴。我试图让用户输入一个输入,然后输出他们的名字。我的程序目前可以运行,只是它不停留在一行上。我的代码:name = input("What is your name: ")splitname = list(name)for i in range(len(splitname)):    f=open(splitname[i] + ".txt","r")    contents = f.read()    print(contents)这就是它的输出:如果可能的话,我想把它全部放在一条线上,我该怎么做?
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

要将 ASCII 字母一个一个地打印出来,您必须将字母分成多行并连接所有相应的行。假设您的 ASCII 文本由 8 行组成:


name = input("What is your name: ")


splitname = list(name)


# Put the right number of lines of the ASCII letter

letter_height = 8


# This will contain the new lines 

# obtained concatenating the lines

# of the single letters

complete_lines = [""] * letter_height


for i in range(len(splitname)):

    f = open(splitname[i] + ".txt","r")

    contents = f.read()


    # Split the letter in lines

    lines = contents.splitlines()


    # Concatenate the lines

    for j in range(letter_height):

         complete_lines[j] = complete_lines[j] + " " + lines[j]


# Print all the lines

for j in range(letter_height):

    print(complete_lines[j])


查看完整回答
反对 回复 2021-06-16
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

解决方案有点复杂,因为您必须逐行打印出来,但您已经需要“信件”文件的所有内容。

解决方案是读取第一个字母的第一行,然后将此字符串与下一个字母的第一行连接起来,依此类推。然后对第二行执行相同的操作,直到打印所有行。

我不会提供完整的解决方案,但我可以帮助修复您的代码。首先,您只需阅读信件文件的一行。如果句柄仍处于打开状态,您可以使用f.readline()而不是f.read()每次连续调用此函数将读取此文件中的下一行。


查看完整回答
反对 回复 2021-06-16
  • 2 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信