python - 在 Python 的四循环中使用 readline() 时,如何忽略 .csv 文件中的空列?

标签 python list file iteration

我在其他语言中看到过类似的问题,但在 Python 中我没有看到。基本上,我有一个函数可以循环读取 .csv 文件中的行,以将数据放入列表列表中。它在每列处拆分,以逗号读取。

我的问题是文件中有两个空列,我的问题是如何使 for 循环忽略空列,或者如何剥离/删除空列表?

这是我当前从文件中读取的函数。

    def read_file_lines(my_file):
"""This function will read user file to list"""
my_list = []
for line in my_file:
    line = my_file.readline()
    my_list.append(line)
return my_list

output:
['AAPL', '2/6/12', '58.064457', '', '']
['AAPL', '9/1/15', '100.91523', '', '']
['AAPL', '5/12/09', '15.570792', '', '']
['MSFT', '5/15/17', '65.6707', '', '']
['MSFT', '6/21/10', '20.752356', '', '']
['AAPL', '2/14/18', '164.227203', '', '']
['IBM', '12/26/17', '142.835663', '', '']
['AAPL', '4/17/09', '15.445643', '', '']
['MSFT', '4/2/09', '15.037685', '', '']
['IBM', '8/3/18', '140.947739', '', '']
['AAPL', '9/21/09', '23.029552', '', '']

最佳答案

考虑使用 CSV 解析器,例如 Python 标准库中包含的解析器 - 此处的文档:https://docs.python.org/3/library/csv.html

加载特定行后,您可以像操作任何其他 Python 列表一样操作它:

import csv

list = []
for row in csv.reader(my_file):
   row = row[:-2]  # remove last two columns
   my_list.append(row)

关于python - 在 Python 的四循环中使用 readline() 时,如何忽略 .csv 文件中的空列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58575423/

相关文章:

python - 如何更改 DataFrame 中值的长度

python - 如何显示 pandas 值计数的千位分隔符?

python - 将字符串转换为整数

Java 通过 CSV 进行过滤并查找数据中的空白

c# - 添加之前检查对象是否已存在于列表中

python - 如何在 Python 中检测文件是否为二进制(非文本)文件?

c - 从 C 中的文件描述符中检索文件名

c++ - 读取PNG header 的宽度和高度

python - 获取根据修改日期排序的文件夹列表

python - 多列 Groupby 大小的 Dask 过滤器数据框