是否可以从特定的csv线读取?

时间:2014-08-13 20:42:40

标签: python file-io

我刚发现无法写入csv文件中的特定行(仅限结尾)。

我遇到了另一个障碍,我遇到了麻烦,即从csv文件中的特定行读取。 我发现实现这一目标的一种方法是:

with open('file.csv',newline = '') as csvfile:
    spamreader = csv.reader(csvfile,delimiter=',',quotechar = '"')
    lines = []
    for row in spamreader:
        lines.append(row)

print('What line do you want to read from?')
line = lines[int(input())-1] #I think the -1 is right. since lists start at 0

但是,我认为这可能是一种效率稍低的方法,因为列表“行”中的行越多,程序将使用的RAM就越多。

有人能告诉我这是否真的是一种有效的方式吗?否则,我会选择这个。

我有什么方法可以做这样的事情吗?

spamreader.readRow(5) #I just made this up, but is there a similar function?

这是我一直在使用的页面,我可以跳过它。 https://docs.python.org/3/library/csv.html

另外,我在编程方面不是很先进,所以如果有一个高级答案,你可以尝试让解释相当简单吗?

1 个答案:

答案 0 :(得分:1)

如果您想从第123行开始阅读:

for _ in range(122): 
    spamreader.next()
for row in spamreader:
    ...

使用Python 3似乎是

    next(spamreader)

还可以使用findseek将光标移动到特定字节,从而在文件中导航。