gpt4 book ai didi

python - 从命令行、Linux 执行带有函数的 python 脚本

转载 作者:IT王子 更新时间:2023-10-28 23:56:56 26 4
gpt4 key购买 nike

我有一个名为 convertImage.py 的 python 文件,在文件中有一个脚本可以根据自己的喜好转换图像,整个转换脚本都设置在一个名为 convertFile(fileName) 的函数中

现在我的问题是我需要从 linux 命令行执行这个 python 脚本,同时传递 convertFile(fileName) 函数。

例子:

 linux user$: python convertImage.py convertFile(fileName)

这应该执行传递适当函数的 python 脚本。

例子:

def convertFile(fileName):

import os, sys
import Image
import string

splitName = string.split(fileName, "_")
endName = splitName[2]
splitTwo = string.split(endName, ".")
userFolder = splitTwo[0]

imageFile = "/var/www/uploads/tmp/"+fileName

...rest of the script...

return

从 liunx 命令行执行此 python 脚本并将文件名正确传递给函数的正确方法是什么?

先谢过

最佳答案

这个

if __name__ == "__main__":
command= " ".join( sys.argv[1:] )
eval( command )

这会起作用。但这非常危险。

您真的需要考虑您的命令行语法是什么。并且您需要考虑为什么您要打破为程序指定参数的长期确立的 Linux 标准。

例如,您应该考虑删除示例中无用的 ()。改成这个。

python convertImage.py convertFile fileName

然后,只需很少的工作,您就可以使用 argparse 获取命令(“convertFile”)和参数(“fileName”),并在标准 Linux 命令行语法中工作。

function_map = { 
'convertFile': convertFile,
'conv': convertFile,
}
parser = argparse.ArgumentParser()
parser.add_argument( 'command', nargs=1 )
parser.add_argument( 'fileName', nargs='+' )
args= parser.parse_args()
function = function_map[args.command]
function( args.fileName )

关于python - 从命令行、Linux 执行带有函数的 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7691599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com