我正在python脚本中使用此代码os.system("dcapgen.exe C:\\Users\\folder\\a.dcap")
来运行此命令 dcapgen.exe C:\ Users \ folder \ a.dcap 。此命令在其当前目录中生成.txt文件。我想在我的代码中进一步使用此生成的.txt文件。这该怎么做?我不要命令日志输出。谢谢!
我是python编程的新手。
答案 0 :(得分:1)
尝试使用var subpy = require('child_process').spawn('path_to_flask_exe');
方法:here。
在Python中,特别方便的是,您可以使用open
子句来包围此方法。
答案 1 :(得分:1)
使用subprocess.run
运行命令并捕获STDOUT以从命令获取输出:
proc = subprocess.run(['dcapgen.exe', 'C:\\Users\\folder\\a.dcap'], stdout=subprocess.PIPE, text=True)
现在,您可以从stdout
属性获取STDOUT:
proc.stdout
您可能需要从末端剥离CR-LF:
proc.stdout.rstrip()
编辑:
如果您使用的是Python 2.7,则可以使用subprocess.check_output
:
out = subprocess.check_output(['dcapgen.exe', 'C:\\Users\\folder\\a.dcap'])
答案 2 :(得分:1)
假设您有一个简单的C程序,它将“ Hello World”写入到名为text.txt
的文本文件中,如下所示:
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE * fp = fopen ("text.txt","w");
fprintf(fp, "Hello world\n");
fclose(fp);
return 0;
}
编译C程序将为您提供可执行文件,在我们的情况下,它称为a.out
。命令./a.out
将运行可执行文件并打印到文件。
现在让我们假设我们在同一文件夹中有一个Python脚本。为了执行C程序并读取文件,您必须执行以下操作
import os
# Run the C generated executable
os.system('./a.out')
# At this point a `text.txt` file exists, so it can be accessed
# The "r" option means you want to read. "w" or "a" for write and append respectively
# The file is now accesible with assigned name `file`
with open("text.txt", "r") as file:
file.read() # To get the full content of the file
file.readline() # To read a single line
for line in file: # Handy way to traverse the file line by line
print(line)
编辑 如果您想遵循以下原则,请记住:
答案 3 :(得分:0)
无法完成此操作,因为在命令提示符下未跟踪将要生成的.txt文件。我们只能使用 subprocess 来获取cmd日志输出,这是其他答案所建议的。因此,我们可以使用生成的文件的路径和全名来访问生成的文件,因为它的命名遵循某种模式并且位置是固定的,所以我们知道
generated_text_file = original_file_name+"_some_addition.txt"
with open(generated_text_file, 'r') as file1:
s = file1.read().replace('/n','')