Python如何从bat文件获取参数

2024-10-03 21:34:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在python文件中从源文件复制到目标文件。 使用

distutils.dir_util.copy_tree(src_dir,dest1_dir); 
distutils.dir_util.copy_tree(src_dir,dest2_dir);

src_dirdest1_dir和{}在python文件中硬编码为

^{pr2}$

但不要硬代码。我把这个python脚本从abc.bat公司文件

如何将src_dirdest1_dirdest2_dir从bat文件传递到python脚本,在python脚本中如何从bat脚本获取传递的参数。 这样我就替换了复制树中的src和destination目录。在


Tags: 文件src脚本tree目标编码dirutil
2条回答

如果你想快速完成某件事,@AdamSmith的方法将是伟大的。在

另一方面,如果您的程序在选项上增长很大,或者您希望创建更优雅的参数,例如:

您的脚本src dir=src\u dirdest dir=dest\u dir

您可以使用argparse,这将很好地完成任务。在

更重要的是,如果您想打印这样的内容:

$ python copier.py -h
usage: copier.py [-h] [ src-dir] [ dest-dir] 

Copies a directory from source to destination

positional arguments:
 src-dir The source directory
 dest-dir The destination directory

optional arguments:
 -h,  help  show this help message and exit

您可以使用

import sys

sys.argv

第一个元素始终是文件名,因此您将看到sys.argv[1:]

^{pr2}$

但是,您使用distutils模块是不是有什么原因呢?它更常从shutil调用

import shutil
import sys

src, dst = sys.argv[1:]
try:
    shutil.copytree(src, dst)
    # shutil.copytree(src, dst2)  # how are you generating dst2?
except Exception:
    # something went wrong. Unless there's a reasonable way to recover we should just
    raise

相关问题 更多 >