我有一个 python pandas 函数,它使用一些库并接受几个参数。我想知道是否可以将带有参数的 python 函数转换为应用程序(so,.exe 文件)。在这种情况下 pyinstaller 会起作用吗?
这是我的函数的代码:
import math
import statistics
import pandas as pd
import numpy as np
from scipy.stats import kurtosis, skew
from openpyxl import load_workbook
def MySummary(fileIn, MyMethod):
DF = pd.read_csv(fileIn)
temp = DF['Vals']
if (MyMethod == "mean"):
print("The mean is " + str(statistics.mean(temp)))
elif (MyMethod == "sd"):
print("The standard deviation is " + str(temp.std()))
elif (MyMethod == "Kurtosis"):
print("The kurtosis is " + str(kurtosis(temp)))
else:
print("The method is not valid")
如果将其转换为 .exe 文件会发生什么。它会自动请求 MySummary 函数的参数或类似的东西吗?
使用argparse模块
import argparse
...
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Calculate stats: mean, sd, Kurtosis")
parser.add_argument('fileIn', help="input .csv file")
parser.add_argument('MyMethod', help="stats method")
args = parser.parse_args()
MySummary(args.fileIn, args.MyMethod)
[references][1]
[1]: https://docs.python.org/3/library/argparse.html
最简单的方法是:
import sys
...
if __name__ == "__main__":
if len(sys.argv) != 3:
print("Usage: xxx.py csvfile.csv method")
else:
MySummary( sys.argv[1], sys.argv[2] )
如果你想更方便使用,你可以使用
argparse
模块来处理参数。
我认为,如果您将代码片段托管在任何服务器上并要求用户在链接中附加输入,那就更好了。在代码中,您可以使用这些值作为系统参数,例如 sys.argv[1]。您的请求链接可能类似于 https://RunmyScript/{value1}/{value2}
或者您可以为用户提供 ssh 命令,以便在安装了 python 和代码的计算机上运行脚本。