Python 如何使用arg解析器库打印参数传递文件中的第一行n

Python 如何使用arg解析器库打印参数传递文件中的第一行n,python,arguments,parameter-passing,command-line-arguments,argparse,Python,Arguments,Parameter Passing,Command Line Arguments,Argparse,如何使用arg解析器库打印作为文件传递的参数中的N行 我有一个100行的文件。我想打印前n行。我还需要使用argparser,因为我不想在python脚本中编辑文件 在下面的脚本中,N是要打印的前N行数。也需要把它作为论据 import argparse parser = argparse.ArgumentParser(description='print n lines') parser.add_argument('filename',type=argparse.FileType('r'),

如何使用arg解析器库打印作为文件传递的参数中的N行

我有一个100行的文件。我想打印前n行。我还需要使用argparser,因为我不想在python脚本中编辑文件

在下面的脚本中,N是要打印的前N行数。也需要把它作为论据

import argparse
parser = argparse.ArgumentParser(description='print n lines')
parser.add_argument('filename',type=argparse.FileType('r'), help='Path to file name')
args = parser.parse_args()

with open("filename") as myfile:
    head = [next(filename) for x in range(N)]
print (head)
我的用法

python file.py file.txt -c 10

它将打印文件的前10行。

我认为您应该添加另一个argparse参数。 比如:



import argparse
parser = argparse.ArgumentParser(description='print n lines')
parser.add_argument('filename',type=argparse.FileType('r'), help='Path to file name')
parser.add_argument('--n_lines',type='int', help='Number of line to print')
args = parser.parse_args()


with open(args.filename) as myfile:
    head = [next(myfile) for x in range(args.n_lines)]
print (head)


通过执行以下操作循环文件中的行

with open("file.txt") as myfile:
    lines = myfile.readlines()
    for line in lines[0:10]:
         print(line)

这将打印前10行,因此第0行到第10行。

什么是“打印N行”?要打印N行还是要打印文件
cat file.txt | head-N 10
?如何执行?python file.py file.txt-c 10,它是否打印前10行python file.py--filename file.txt--n_行10应该可以工作。用法:file.py[-h][--n_行n_行]filename file.py:错误:参数--n_行:无法打开“10”:[Errno 2]没有这样的文件或目录:“10”