在文件打印之间输入

时间:2017-10-18 19:17:48

标签: python

我试图让用户输入f以便从.txt文件中打印下一行。到目前为止,我只能请求1个用户输入,它将输出整个列表或列表中的特定行。我只是尝试按用户输入顺序打印行以继续。到目前为止,这是我的代码:

Email

1 个答案:

答案 0 :(得分:1)

选项1

如果您只是希望用户将inputting保留到f,然后print()第一行,则可以执行以下操作:

def wordDefinition():
   with open('study_games.txt', 'r+') as f:
      fullList = input("press f for your list of words and definitions\n")
      while fullList != 'f':
         print("you didn't enter f!")
         fullList = input("press f for your list of words and definitions\n")
      print(f.readline())

应该相当清楚这里发生了什么。我们只是要求用户提供inputwhile input 'f',我们打印出他们没有输入'f'并要求另一个input

输入'f'后,我们会使用f.readline()打印第一行。

选项2

但是,我不确定这是你想要的。我认为您不是在寻找txt文件的第一行,而是在用户{{{em> entire 文件时{@ 1}} 1}} printed

这很容易做到,我们只需将inputs切换为'f'

制作代码:

f.readline()

这将显示整个文件的原因如下。如果我们有一个简单的f.read()文件进行测试,请将其称为def wordDefinition(): with open('study_games.txt', 'r+') as f: fullList = input("press f for your list of words and definitions\n") while fullList != 'f': print("you didn't enter f!") fullList = input("press f for your list of words and definitions\n") print(f.read()) ,内容为:

txt

然后我们打电话:

test.txt

我们收到testing line1 line2 line3 open("test.txt", "r").read() 个文件的内容,其中包含分隔行的换行符(string):

txt

因此我们可以将此\n直接传递到"testing\nline1\nline2\nline3\n" ,这将显示文件,就像在文本编辑器中看到的那样(代替string字符的新行)。所以电话:

print()

会像以前一样回馈:

'\n'

因此您可以使用相同的想法来显示print(open("test.txt", "r").read()) 整个内容。

选项3

如果你想让用户输入testing line1 line2 line3 并且只打印一行,然后等待下一行的另一个输入直到文件结尾,你只需要将第一个代码放在{ {1}}。您可以使用遍历文件对象的'f'轻松遍历文件的行。

所以我们需要做的就是在第一个'f'中添加for loop

for loop