Python csv seek()不工作
嗨,我正在尝试使用以下代码读取csv文件。我想从提供的csv文件的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
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)