BASH w/ Python Subprocess 中是否还有其他替代“>”的方法
Is there any other altrenative to ">" in BASH w/ Python Subprocess
我正在尝试将我的输出打印到日志文件中,我正在使用 python 和 subprocess 来做所以。但是当我在代码中使用 > 时,出现如下错误:
+ klm.py scan /home '>' /home/userA/out/home_03-30-2022_11-07-32.log
2022-03-30 09:09:21,074 ERROR > does not exist
这是我的代码 运行:
subprocess.run(['sudo', 'docker', 'run', '-it', '--rm', '-w', '/workdir', '-v', f'{pwd}:/workdir:ro', 'docker-local.abc.xyz.xyz.name.com/klm', 'klm.py', 'scan', f"{pwd}", ">", f'/home/userA/out{directory}_{date_time}.log'])
每当我直接在终端中使用命令本身时,命令正常工作,没有任何错误并创建 .log 文件,我认为这是来自子进程或 python 端的错误。
> directory variable is a for loop of list elements -> DIRECTORIES = [/home, /root, etc]
> datetime just a string -> date_time
> pwd is -> pwd = os.getcwd()
> I don't know if it is useful info but I am using Kali Linux for this
我想在更简单的命令上显示标准输出重定向。它将日期和时间打印到文件中。首先使用 shell 的重定向,然后不使用 shell 的帮助(shell=False
是默认值)
import subprocess
# with shell redirection
subprocess.run(['date >out1.txt'], shell=True)
# without shell
with open('out2.txt', 'w') as out:
subprocess.run(['date'], stdout=out)
注意:文档要求您在使用 shell=True
之前阅读 Security Considerations。
我正在尝试将我的输出打印到日志文件中,我正在使用 python 和 subprocess 来做所以。但是当我在代码中使用 > 时,出现如下错误:
+ klm.py scan /home '>' /home/userA/out/home_03-30-2022_11-07-32.log
2022-03-30 09:09:21,074 ERROR > does not exist
这是我的代码 运行:
subprocess.run(['sudo', 'docker', 'run', '-it', '--rm', '-w', '/workdir', '-v', f'{pwd}:/workdir:ro', 'docker-local.abc.xyz.xyz.name.com/klm', 'klm.py', 'scan', f"{pwd}", ">", f'/home/userA/out{directory}_{date_time}.log'])
每当我直接在终端中使用命令本身时,命令正常工作,没有任何错误并创建 .log 文件,我认为这是来自子进程或 python 端的错误。
> directory variable is a for loop of list elements -> DIRECTORIES = [/home, /root, etc]
> datetime just a string -> date_time
> pwd is -> pwd = os.getcwd()
> I don't know if it is useful info but I am using Kali Linux for this
我想在更简单的命令上显示标准输出重定向。它将日期和时间打印到文件中。首先使用 shell 的重定向,然后不使用 shell 的帮助(shell=False
是默认值)
import subprocess
# with shell redirection
subprocess.run(['date >out1.txt'], shell=True)
# without shell
with open('out2.txt', 'w') as out:
subprocess.run(['date'], stdout=out)
注意:文档要求您在使用 shell=True
之前阅读 Security Considerations。