首页 > 解决方案 > 读取 .txt 并用逗号分割列表时出错

问题描述

我正在开发一个从列表中选择随机元素的程序。这些元素存储在一个用逗号分隔的 .txt 文件中。

示例:.txt 文件包含

spam,eggs,bacon

所以我使用这段代码返回一个包含 3 个元素的列表。

f = open("list.txt", "r")

_list_raw = f.read()

_list = (str(_list_raw))

_list_split = _list.split(",")

f.close()

return _list_split

_list_split 将是 [垃圾邮件,鸡蛋,培根]

问题是如果 .txt 是空的,这个函数会返回一个包含元素 '' 的 len = 1 的列表。我不明白这里发生了什么。

expected result = [] len = 0
obtained result =[''] len = 1

所以这会导致很多问题,如果我将一个元素附加到这个列表中,我会在 .txt 中获得类似的东西

,eggs,bacon

我该如何解决这个问题?谢谢!

标签: pythonpython-3.x

解决方案


expected result = [] len = 0
obtained result = [''] len = 1

这种行为是因为在第二种情况下,您有一个列表,其中包含一个元素。它可能是一个“空”字符串,但它仍然是一个元素。

解决问题的一种方法是:

if not _list_split[0]:
    _list_split = []

此条件将检查 的第一个元素_list_split是否为空字符串,仅当文件确实为空时才会发生。


推荐阅读