如何解决通过脚本交互地定义整个python包路径的变量的良好实践
因此,我真的不确定如何执行此操作以及这是否是个好主意。但是我有一个包含一些python模块的目录,它们都在其中引用了一些特定的目录,这些目录是在依次执行一个python模块之后依次创建的。
因此,在每个模块中,我都全局声明变量:
path_to_zips = "../zips"
path_to_unzipped = "../unzipped"
我认为必须有一个更好的方法来解决这个问题。我知道我可以在脚本中声明路径,然后执行
from paths_script import *
但是我想做的是让用户有机会运行一个脚本(我们将其称为set_paths
),该脚本将以交互方式设置这些路径,如果他不运行它,将会出现一些默认值。
所以我想到了这个
import argparse
# parse some arguments
parser = argparse.ArgumentParser(description="Set the Paths for the entire project")
# get optionsal arguments
parser.add_argument("-data","--data",dest="data_dir",Metavar="",help="folder for all the Zips and SAFEs",default="../data",type=str)
parser.add_argument("-slc","--slc",dest="slc_dir",help="folder for all the SLCs",default="../data/SLC",type=str)
parser.add_argument("-dem","--dem",dest="dem_dir",help="folder for all the DEMs",default="../data/DEM",type=str)
parser.add_argument("-tup","--tuple",dest="tuple_dir",help="folder for all the tuples",default="../data/tuples",type=str)
args =parser.parse_args()
def parse_dates(args):
return args.data_dir,args.slc_dir,args.dem_dir,args.tuple_dir
def main():
# how to define them globally?
data_dir,slc_dir,dem_dir,tuples_dir = parse_dates(args)
if __name__ == "__main__":
main()
但是再说一次,我不知道如何对待那些* _dir变量,以使其可导入到另一个脚本中,例如:
from set_paths import *; print(data_dir)
也许有人了解这个问题并且有什么主意;)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。