Python脚本将结果写入文本文件

时间:2016-02-24 18:03:17

标签: python

今天我设法运行了我的第一个Python脚本。我是Windows 7机器上的新手。

当我运行python.exe并输入以下内容时(Python安装在C:/ Python27中)

import os
os.chdir('C:\\Pye\\')
from decoder import *
decode("12345")

我在python命令提示符窗口中获得了所需的结果,因此代码工作正常。然后我尝试将这些结果输出到文本文件,这样我就不必在提示窗口中手动将其全部复制粘贴。经过一段谷歌搜索(再次,我有点猜测我在这里做什么)我想出了这个;

我在C:/ Pye目录中写了“a.py”脚本,它看起来像这样;

from decoder import *
decode("12345")

然后我写了一个看起来像这样的01.py文件;

import subprocess
with open("result.txt", "w+") as output:
subprocess.call(["python", "c:/Pye/a.py"], stdout=output);

我看到result.txt在目录中创建,但是0字节。如果我已经创建一个空的result.txt并执行01.py(我使用Python启动器),也会发生同样的情况。

我有什么想法搞砸了吗?

2 个答案:

答案 0 :(得分:1)

你没有在UpdateProgress中打印任何内容。将其更改为:

a.py

在Python shell中,它会自动打印它;但是Python shell只是一个帮手。在文件中,您必须明确告诉它。

答案 1 :(得分:0)

当你运行python并输入命令时,它会打印到标准输出(默认情况下是控制台),因为你正在使用shell。 python shell中打印的内容只是该代码行返回的对象的表示。它实际上并不等同于显式调用print。

使用文件参数运行python时,它会逐行执行该脚本,而不会将任何变量打印到stdout,除非您显式调用“print()”或直接写入stdout。

考虑更改脚本以使用print语句。:

print(decode("12345"))