将csv作为命令行参数读取

7kjnsjlb  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(335)

正如标题所说,我正在从事一个项目,其中输入文件将是命令行参数,我有点困惑如何读取它们。我知道用python编写代码,它看起来像

with open(filepath, 'r') as file:
     lines = file.read().splitlines()

但我认为命令行参数对象的情况会有所不同。我还附上了整个命令行参数的图片。

其中-为输入,而-为输出。

m3eecexj

m3eecexj1#

你可以用一些简单的东西 sys.argv 获取命令参数。
如果你跑

python report.py TeamMap.csv

然后你就可以 TeamMap.csv 具有 sys.argv[1] ```
import sys

filepath = sys.argv[1]

with open(sys.argv[1]) as file:
lines = file.read().splitlines()

它可能还需要 `len(sys.argv) > 1` 检查命令行中是否有参数

import sys

if len(sys.argv) > 1:
#filepath = sys.argv[1]
with open(sys.argv[1]) as file:
lines = file.read().splitlines()
else:
print('You need file path')
exit(1)

但对于更复杂的内容,您应该看到模块argparse

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-t', help='path to team csv')
parser.add_argument('-p', help='path to product csv')
parser.add_argument('-s', help='path to sales csv')
parser.add_argument('--team-report', help='path to team report')
parser.add_argument('--product-report', help='path to product report')
args = parser.parse_args()

with open(args.t) as file:
lines = file.read().splitlines()

相关问题