我试图让用户输入f以便从.txt文件中打印下一行。到目前为止,我只能请求1个用户输入,它将输出整个列表或列表中的特定行。我只是尝试按用户输入顺序打印行以继续。到目前为止,这是我的代码:
Email
答案 0 :(得分: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())
应该相当清楚这里发生了什么。我们只是要求用户提供input
和while
input
不 'f'
,我们打印出他们没有输入'f'
并要求另一个input
。
输入'f'
后,我们会使用f.readline()
打印第一行。
但是,我不确定这是你想要的。我认为您不是在寻找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())
的整个内容。
如果你想让用户输入testing
line1
line2
line3
并且只打印一行,然后等待下一行的另一个输入直到文件结尾,你只需要将第一个代码放在{ {1}}。您可以使用遍历文件对象的'f'
轻松遍历文件的行。
所以我们需要做的就是在第一个'f'
中添加for loop
:
for loop