Python csv seek()不工作

Python csv seek()不工作,python,csv,io,Python,Csv,Io,嗨,我正在尝试使用以下代码读取csv文件。我想从提供的csv文件的nth行读取到mth行。例如,我想从第10行开始读到第100行,然后从第500行开始读到第1000行。我使用start和end变量给出这些参数 问题是无论起始变量和结束变量如何,它总是从头开始。我尝试了一个解决方案,但失败了。有人能帮我解决这个问题吗。?谢谢!(有一些重复的问题,但似乎没有人给出解决方案) 导入csv 导入操作系统 将open('file.csv','r')作为csvfile: 开始=10 结束=100 csvfi

嗨,我正在尝试使用以下代码读取csv文件。我想从提供的csv文件的
n
th行读取到
m
th行。例如,我想从第10行开始读到第100行,然后从第500行开始读到第1000行。我使用
start
end
变量给出这些参数

问题是无论起始变量和结束变量如何,它总是从头开始。我尝试了一个解决方案,但失败了。有人能帮我解决这个问题吗。?谢谢!(有一些重复的问题,但似乎没有人给出解决方案)

导入csv 导入操作系统 将open('file.csv','r')作为csvfile: 开始=10 结束=100 csvfile.seek(开始) r=csv.reader(csvfile) r、 下一个() 对于范围内的i(开始、结束): 尝试: url=r.next()[2] 打印url 除索引器外,e: 打印str(e), 除ValueError外,b: 打印b csvfile.close() 使用模块

导入csv
n=3
m=5
读取=0
以open(“so.csv”)作为csvfile:
reader=csv.reader(csvfile)
在读卡器中记录:
读取+=1

如果read>=n且read,则可以遍历csv文件行并获得所需的行,如下所示:

import csv

def read_lines(file_name, start, end):
    with open(file_name, 'rb') as csvfile:
        csvreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
        for row in csvreader:
            if csvreader.line_num >= start and csvreader.line_num <= end:
                print ', '.join(row)
            else:
                continue

read_lines('test.csv', 10,12)
导入csv
def读取行(文件名、开始、结束):
打开(文件名为“rb”)作为csvfile:
csvreader=csv.reader(csvfile,分隔符='',引号='|')
对于csvreader中的行:

如果csvreader.line_num>=start和csvreader.line_num,
seek
的参数以字节为单位,而不是以行为单位:(是否有任何方法可以查找行数?请注意,这不是记录数,因为记录可以跨多行!我尝试了此操作,但读者似乎缺少一些记录。csv文件每行正好包含一条记录。无论如何,感谢您的建议。您应该检查csv文件中的分隔符和引号是什么,然后进行更改。)相应的代码我使用了
分隔符=',',quoting=csv.QUOTE_非数字
来写入此csv文件,但将其放入csv读取器后,会出现以下错误。**无法将字符串转换为浮点:页码**
import csv

n = 3
m = 5

read = 0
with open("so.csv") as csvfile:
    reader = csv.reader(csvfile)
    for record in reader:
        read += 1
        if read >= n and read <= m:
            print(record)
import csv

def read_lines(file_name, start, end):
    with open(file_name, 'rb') as csvfile:
        csvreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
        for row in csvreader:
            if csvreader.line_num >= start and csvreader.line_num <= end:
                print ', '.join(row)
            else:
                continue

read_lines('test.csv', 10,12)