python - 从 python csv 阅读器订阅特定行?

标签 python file-io csv

我希望能够通过 csv 阅读器访问 csv 文件的特定行。比如第四行。有没有办法用 python 的 csv 阅读器模块做到这一点?

最佳答案

你只需要解析所有的 CSV 文件,然后使用正常的排序索引。

否则,你可以这样做

def my_filter(csv_file, lines):
   for line_number, line in enumerate(csv_file):
       if line_number in lines:
          yield line

my_file = open("file.csv")
my_reader = csv.reader(my_filter(my_file, (3,)))

请注意,您无法避免以某种方式解析整个文件,因为行的长度是可变的。行数只有在找到 '\n' 时才会增加,并且必须逐个字符地找到它。

此外,如果您碰巧在 csv 文件的引号内有换行符,则此过滤器将不起作用——可能您最好将整个文件解析为一个列表,并从那里检索索引,无论如何:

my_file = open("file.csv")
my_reader = csv.reader(my_file)
my_line = list(my_reader)[3]

更新 最重要的是:如果您需要随机访问太大而无法放入内存的信息,只需考虑将其转储到 SQL 数据库即可。它将节省一个重新发明很多轮子的时间。

关于python - 从 python csv 阅读器订阅特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3215347/

相关文章:

Python 网页抓取 : Image incomplete when using urllib

java - 为什么我的程序不能将信息写入文件?

powershell - 使用 Powershell 从一个文件夹中的多个 CSV 文件中删除前 15 行

Android 在 Android 5+ 的外部 SD 卡上写入文件

c++ - 如何确保在文件 IO (WriteFile()) 上将数据刷新到 HDD(未缓冲)

python - 从 CSV 中提取信息

javascript - 从上传的 CSV 文件创建数据表

python - Python 3.2 中的冒泡排序

python - 如何将 cv2 图像转换为 skimage?

python - 根据列值和列表创建列