python - 当我输入 4 时,我的文件有 5 个项目,我该如何解决这个问题?
问题描述
所以我的程序要求用户在文本文件中输入他们想要的任何内容(我将其命名为 chapter14file.txt)。一旦他们完成,他们应该进入“完成”。所以我创建了一些打印语句以确保一切正常。如果我运行这个程序并进入有问题的打印语句(最后一行),它将显示比我输入的更多。如果我在单独的行中输入:
1
2
测试
3
完毕
现在我完成了。所以我输入“完成”。它进入打印语句并显示:['1', '2', 'Test', '3', '']
因此,重要的是要知道我的任务是将用户输入转换为列表。这就是为什么项目在方括号中。
chapter14file = open ("chapter14file.txt", "w+")
while True:
user_item = str (input ("Please enter what you would like to be added to chapter14file.txt. Type 'done' when you are finished. ") )
if user_item.upper() == "DONE":
break
else:
chapter14file.write (user_item + ",")
chapter14file.close()
items_from_file = (open ("chapter14file.txt").read())
items_list = items_from_file.split(",")
items_list_capital = [ elem.upper() for elem in items_list ] #Converts each element of the list to only have capital letters, no lowercase letters. Makes the search case insensitive.
print (items_from_file, items_list, items_list_capital)
预期(坚持前面的例子):['1', '2', 'Test', '3']
实际:['1', '2', 'Test', '3', '']
注意:当我谈论结果时,'' 具体来说,在两个小撇号之间没有任何内容。
解决方案
这就是问题所在:
chapter14file.write (user_item + ",")
您将其附加,
到每个条目。所以最后一个条目最终看起来像:
a,b,c,
当您获取此字符串并将其拆分时,
- 由于最后一个字符,您最终会得到一个空字符串,
。
您可以通过删除最后一个,
或剥离空字符串来修复它。
推荐阅读
- opencart - Opencart CDN 的建议
- string - 将带有逗号分隔的浮点数的字符串列转换为 2D NumPy 数组的有效方法?
- javascript - 我想在最后用 jquery 获得有用的链接
- javascript - jQuery:如果单击相同的元素,则删除类
- asp.net-mvc - 使用 .Net Core 发送 HTTP Post
- python - 取张量中每一行的最大值 [PyTorch]
- python - 如何使用 BeautifulSoup 提取文本 FAST 'N FREE
- r - 计算在 R 中的骰子数量上掷出的 6 的数量
- apache - 我应该将黑客/黑客脚本重定向到哪里?
- python-3.x - 导入 Statsmodels 问题