当用户键入特定字符串时,我试图使文本文件打印出某些行。这就是我所拥有的:
userfile = open("hk.csv","rU")
userfile = userfile.readline()
id_str = input("type in the id#: ")
for n in userfile:
if id_str in userfile.startswith(id_str):
print(n)
以下是示例文本文件:
"id#","name"
"1","ball"
"2", "tee"
"3", "cart"
"4", "club"
假设用户输入"3"
作为他们的ID#。然后我必须返回类似的内容:
ID# name
--------------
1 ball
2 tee
4 club
这给了我一个TypeError;我现在知道startswith()
方法只返回一个布尔值。
编辑:
我将在这里发布这个答案,因为评论过于混乱。这是我提出的新代码:
我实际上已经改变了我的方法,现在我想出了这个:
userfile = open("hk.csv","rU")
id_str = input("type in the id#: ")
#read line by line
for i in userfile:
newfile = i[:-1]
#if the comparison string matches with the user input, then print out those lines.
comparison_str = ' '
for j in newfile:
if j == id_str:
comparison_str += j
print(comparison_str)
#this line is still iffy.
if comparison_str == id_str:
print(userfile)
此代码不打印任何内容。我想这比我得到的TypeError好。
答案 0 :(得分:0)
readline
返回一行。迭代文件,然后在找到记录时停止:
user_id = input("type in the id#: ")
with open("hk.csv", "rU") as handle:
for line in handle:
if line.startswith(user_id):
print(line)
break
else:
print("No matches")
或者将整个文件转换为更好的数据结构,如字典。