这是我的问题: 我有很多文件,每个文件包含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倍。
答案 0 :(得分:1)
因此,您要先打印第一行,然后再打印第十行,只要文件足够长即可执行此操作。这是您的处理方式:
with open('my_file.txt', 'r') as infile:
file_lines = infile.readlines()
for line in file_lines[::10]:
print(line)
这是列表切片-从列表的开头开始,一直持续到列表的结尾,并且每次递增10个元素。您将最终获得元素0
,10
,20
,...的列表,并仅打印这些元素。