我试图弄清楚如何使用输入的 xrange 打印列表中的行。我试图不缩写我的代码,因为我仍在学习并希望清楚地遵循逻辑。所以我想要的是打印用户提供的参数中的一系列行。我知道我有一些顺序错误,但我不知道如何输入它......这是我到目前为止所得到的:
import csv
import sys
sourcef = sys.argv[1] # Source file path/name
destf = sys.argv[2] # Destination file path/name
linestart = int(sys.argv[3]) # Starting row to delete
lineend = int(sys.argv[4]) # Ending row to delete
with open (sourcef, 'rb') as file1, open (destf, 'wb') as file2:
reader = csv.reader(file1)
writer = csv.writer(file2)
row = list(reader)
for i in xrange(linestart, lineend):
print i
最佳答案
你想要的是一个slice
对象而不是xrange
:
...
rows = list(reader)
for x in rows[slice(linestart, lineend)]:
print x
这是更详细的形式:
...
rows = list(reader)
for x in rows[linestart: lineend]:
print x
您可能不需要将 reader
迭代器具体化为列表,特别是在您只需要一小部分行的情况下。在这种情况下,您可以使用 itertools.islice
。
from itertools import islice
...
for x in islice(reader, linestart, lineend)
print x
关于python - 如何使用 xrange 的结果打印列表 (CSV) 中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47520668/