python - 如何从 .csv 文件加载数据而不导入 .csv 模块/库

标签 python csv

def loadfunc(filestr):
listoftuples = []
listofnumbers = []
tupleinlist = []
with open(filestr, 'r') as file:
    for line in file:
        for item in line:
            if item.isdigit():
                listofnumbers.append(float(item))
            else:
                word = item
tupleinlist.append(word)
tupleinlist.append(listofnumbers)
listoftuples.append(tuple(tupleinlist))
return listoftuples
print(listoftuples)

上面是我的代码。因此,要求是将数据从 .csv 文件加载到元组列表中。文件中的数据类似于:

 - apple    23.2    24.3    25.6
 - banana   22.1    20.0    19.9

列表中的每个元组都必须是(word, listoffloats),因此列表如下所示:

[(apple, [23.2, 24.3, 25.6]), (banana, [22.1, 20.0, 219.9])]

但是在我的代码中,它搞砸了并且不返回它,因为当它迭代每个“行”中的“item”时,它会迭代每个字符(例如 . apple),而不是像 这样的 item >苹果23.2

请帮忙,我不知道如何解决这个问题,并且本教程不允许使用 csv 库/模块。

最佳答案

假设您有 t.csv 中的数据。您可以将数据保存在 results 列表中,然后在文件中的每一行上使用 split 并将拆分结果附加到 results 中。使用 csv 模块可以为您完成此操作,但您可以使用 split 复制分隔符行为。

with open('t.csv', 'r') as f:
    results = []
    for line in f:
            words = line.split(',')
            results.append((words[0], words[1:]))
    print results

关于python - 如何从 .csv 文件加载数据而不导入 .csv 模块/库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32327936/

相关文章:

csv - Neo4j 加载 CSV 错误 : Query cannot conclude with LOAD CSV

python - 使用 Pandas reshape 2 列的数据

python - 如何使用 Flask Request 将 GET 参数传递给 url

python - python中字典的排列

python - csv 中第一位数字的数字频率,不导入

csv - Perl Text::CSV_XS 当注释是最后一行时将其视为数据

javascript - 使用客户端脚本将 CSV 转换为 XML

python - 如何创建一个包含原始数据帧中所有空值的数据帧?

python - 使用 Python 在 Postgresql 中存储 Json 对象数组

python - 在第一个空行写入 CSV