Я пытаюсь прочитать файлы Excel и вывести их как json с pandas.DataFrame.
В этих ситуациях я запускаю программу:
[y.pan@working excel_check]$ python3.6 check.py -j -o result.txt ./workingfile/testfile01.xlsx
[y.pan@working excel_check]$ python3.6 check.py -j -o result.json ./workingfile/
с путем к одному файлу или каталогуработает без проблем. Но когда я пытаюсь ввести данные, как это:
[y.pan@working excel_check]$ python3.6 check.py -j -o result.json ./workingfile/testfile*.xlsx
всегда будет выдавать ошибку:
unrecognized arguments: ./workingfile/testfile_01_fin.xlsx ./workingfile/testfile_02_fin.xlsx ./workingfile/testfile_03_fin.xlsx ... ./workingfile/testfile_99_fin.xlsx
Вот мой код, пытающийся это выяснить:
def make_df(input_path):
# path = os.getcwd()
df = pd.DataFrame()
if os.path.isdir(input_path):
files = os.listdir(input_path)
files_xlsx = [f for f in files if f[-4:] == "xlsx"]
for f in files_xlsx:
data = pd.read_excel(f)
df = df.append(data)
elif os.path.isfile(input_path):
data = pd.read_excel(input_path)
df = df.append(data)
else:
print("Not a file or directory.")
def create_argparser():
ap = argparse.ArgumentParser()
ap.add_argument(
"-o", "--output",
action = "store"
)
ap.add_argument(
"-j","--json",
action = "store_true"
)
ap.add_argument("input_path", action = "store")
return ap.parse_args()
def main():
args = create_argparser()
if args.json:
if args.output:
write_json(args.input_path, args.output)
else:
#write_json(df, stdout)
pass
else:
print_df(args.input_path)
# pass
exit()
Где мне нужно изменить, чтобы запустить третий случай?