我正在编写一个Python脚本,我希望它的行为取决于谁调用该脚本:
我的批处理文件如下所示:
python py_script.py
有没有办法完成这项工作?我看了os.environ.has_key()
,但我不知道如何使用它。
答案 0 :(得分:1)
只需将一个参数传递给您的脚本,告诉他在哪里写...命令行参数在sys.argv
中传递。 stdlib中有几个软件包可以处理它们,但您可能不需要这些软件包,这是您脚本的唯一选择。
答案 1 :(得分:0)
执行此操作的最简单方法是(作为评论中的tobias_k备注)仅在从脚本调用时管道到日志文件
REM This is your batch file
python py_script.py >> your_log_file.txt
布鲁诺在另一个答案中建议从sys.argv
拉出一个标志肯定是有效的,但是你最终会做很多重复的代码。您的代码库将如下所示:
if LOGGING:
with open(PATH_TO_LOGFILE, 'a') as logf:
logf.write(some_txt)
else:
print(some_txt)
随时打印电话。或者你可以做一些令人难以置信的丑陋的东西,如
if __name__ == "__main__":
if LOGGING:
old_stdout = sys.sdout
with open(PATH_TO_LOGFILE, 'a') as logf:
sys.stdout = logf
main()
sys.stdout = old_stdout
老实说,丑陋和黑客(甚至可能不起作用,我从未试图重新分配sys.stdout
)。只需使用shell重定向。