Python:根据行数打印文件的某些行

时间:2019-06-03 13:08:03

标签: python

这是我的问题: 我有很多文件,每个文件包含2到437行的不同行数。

如果文件少于10行,我想打印第一行;如果文件介于10和19之间,则打印第一和第十;如果文件少于20行,则打印第一,第十和第二十。和29行,依此类推。

例如,假设其中一个文件有98行。然后我要打印文件的第1、10、20、30、40、50、60、70、80和90行。

谢谢

编辑:

这是我到目前为止的代码:

line_num=0

for line_num, l in enumerate(file1, 1):
    pass
line_num+1


if line_num<10:
    print(linecache.getline(file1, 1)

if 10<=line_num<20:
    print(linecache.getline(file1, 1)
    print(linecache.getline(file1, 10)

对于每种情况,我都看不到自己复制/粘贴“ if”语句的40倍。

1 个答案:

答案 0 :(得分:1)

因此,您要先打印第一行,然后再打印第十行,只要文件足够长即可执行此操作。这是您的处理方式:

with open('my_file.txt', 'r') as infile:
    file_lines = infile.readlines()
    for line in file_lines[::10]:
        print(line)

这是列表切片-从列表的开头开始,一直持续到列表的结尾,并且每次递增10个元素。您将最终获得元素01020,...的列表,并仅打印这些元素。