将命令提示符数据分配到python变量中

将命令提示符数据分配到python变量中,python,command-prompt,Python,Command Prompt,我正在尝试检索subversion存储库中文件的svn日志信息,稍后需要将其转储到CSV中 显然,我使用python os包运行以下命令 代码: 我在information.txt中获取svn日志数据,但是对几个文件执行这种操作(写入txt和读取txt)非常耗时 有没有一种方法可以自动将从svn log-v获取的数据分配到python变量中?您可以使用它,注意我正在将命令拆分为一个列表,您可以事先创建该列表 import subprocess filePath = r"C:\Project_F

我正在尝试检索subversion存储库中文件的svn日志信息,稍后需要将其转储到CSV中

显然,我使用python os包运行以下命令

代码:

我在information.txt中获取svn日志数据,但是对几个文件执行这种操作(写入txt和读取txt)非常耗时

有没有一种方法可以自动将从
svn log-v
获取的数据分配到python变量中?

您可以使用它,注意我正在将命令拆分为一个列表,您可以事先创建该列表

import subprocess

filePath = r"C:\Project_Files\My_Project\file1.c" # My_Project is in Subversion
svn_command = "svn log " + filePath + "-v > C:\\information.txt"

#Split command into individual words
cmd_list = svn_command.split()

#Run command via subprocess Popen
cmd_output = subprocess.Popen(cmd_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

#Get output and error 
cmd_output, cmd_err = cmd_output.communicate()

#Get output and error string
cmd_output_str = cmd_output.decode('utf-8', errors='ignore').strip()
cmd_err_str = cmd_err.decode('utf-8', errors='ignore').strip()
一个有效的例子是

import subprocess

cmd = 'uname -a'

#Split command into individual words
cmd_list = cmd.split()

#Run command via subprocess Popen
cmd_output = subprocess.Popen(cmd_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

#Get output and error
cmd_output, cmd_err = cmd_output.communicate()

#Get output and error string
cmd_output_str = cmd_output.decode('utf-8', errors='ignore').strip()
cmd_err_str = cmd_err.decode('utf-8', errors='ignore').strip()

print(cmd_output_str)
print(cmd_err_str)
这里的输出将是

Darwin LUSC02WK0GKHTDH 18.5.0 Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 x86_64


您好@SuryaTej,您可以使用
subprocess.Popen
为此,请查看下面我的答案:)谢谢@deveshkumarsing您的subprocess.Popen方法为meGlad提供了帮助@SuryaTej,并感谢接受:)
Darwin LUSC02WK0GKHTDH 18.5.0 Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 x86_64