如何执行python脚本并将输出写入txt文件?

如何执行python脚本并将输出写入txt文件?,python,output,Python,Output,我正在执行一个.py文件,它会输出一个给定字符串。这个命令运行良好 execfile('file.py') 但是我希望输出(除了在shell中显示)写入文本文件 我试过这个,但不起作用:( execfile('file.py')>('output.txt')) 我得到的只是: tugsjs6555 假的 我猜“False”指的是未成功写入的输出文件:( 感谢您的帮助您所做的是对照字符串'output.txt'检查execfile('file.py')的输出 您可以使用子流程执行您想要执行的操作

我正在执行一个.py文件,它会输出一个给定字符串。这个命令运行良好

execfile('file.py')

但是我希望输出(除了在shell中显示)写入文本文件

我试过这个,但不起作用:(

execfile('file.py')>('output.txt'))

我得到的只是:

tugsjs6555

假的

我猜“False”指的是未成功写入的输出文件:(


感谢您的帮助

您所做的是对照字符串
'output.txt'
检查
execfile('file.py')
的输出

您可以使用子流程执行您想要执行的操作

#!/usr/bin/env python
import subprocess
with open("output.txt", "w+") as output:
    subprocess.call(["python", "./script.py"], stdout=output);

由于在执行“file.py”之前将标准输出定向到文件output.txt,这也会起作用:

或者,在子流程中执行脚本:

import subprocess

with open("output.txt", "wb") as f:
    subprocess.check_call(["python", "file.py"], stdout=f)
如果要写入目录,假设要对目录路径进行硬编码:

import sys
import os.path

orig = sys.stdout
with open(os.path.join("dir", "output.txt"), "wb") as f:
    sys.stdout = f
    try:
        execfile("file.py", {})
    finally:
        sys.stdout = orig
改用这个:

text_file = open('output.txt', 'w')
text_file.write('my string i want to put in file')
text_file.close()

将其放入主文件并继续运行。用字符串或包含要输出字符串的变量替换第2行中的字符串。如果您还有其他问题,请在下面的帖子中发表。

运行脚本并将输出输出到文本文件的最简单方法是在终端中键入以下内容:

file_open = open("test1.txt", "r")
file_output = open("output.txt", "w")

for line in file_open:
    print ("%s"%(line), file=file_output)

file_open.close()
file_output.close()
PCname:~/Path/WorkFolderName$
python scriptname.py>output.txt


*在执行命令之前,请确保已在工作文件夹中创建output.txt。

使用上述文章中Remolten的一些提示和一些其他链接,我编写了以下内容:

from os import listdir
from os.path import isfile, join
folderpath = "/Users/nupadhy/Downloads"
filenames = [A for A in listdir(folderpath) if isfile(join(folderpath,A))]
newlistfiles = ("\n".join(filenames))
OuttxtFile = open('listallfiles.txt', 'w')
OuttxtFile.write(newlistfiles)
OuttxtFile.close()

上面的代码是列出我的下载文件夹中的所有文件。它会将输出保存到listalfiles.txt的输出中。如果文件不在那里,每次运行此代码时,它都会创建并替换为新文件。您需要注意的是,它会在保存py脚本的文件夹中创建输出文件。请看如何操作,希望有帮助。

如果您在Windows命令提示符下运行该文件:

python filename.py >> textfile.txt
输出将重定向到存储filename.py文件的同一文件夹中的textfile.txt


只有当您的结果显示在cmd上,并且希望看到整个结果而不被截断时,才可以执行上述操作。

您也可以通过转到使用cmd保存python脚本的文件夹路径,然后执行name.py>filename.txt
它在windows 10上对我起作用了

谢谢raser,但是我该如何在>>>中运行它呢?我试着一次写一行,但是当我尝试第二行时,我发现一个语法错误:(你能帮我把它哑一下吗;)干杯!您是在使用IDLE还是在命令行中?通常您可以选择所有行并以任何方式粘贴它。我是python新手,刚刚在我的win8上安装了python27。因此我使用cmd。我尝试将上述代码c/p保存到一个新文件中,将其保存为run.py并尝试了execfile('run.py'),但仍然不起作用:(您更改了吗?/script.py)到“/file.py”(或任何您指定为要运行的文件的名称)?with语句中缺少冒号,
open
调用中缺少写入模式。您真的想在当前范围内运行
file.py
,访问您定义的所有变量,还是想在单独的环境中运行它?
execfile
很可能不是您需要的工具您将使用。除非
file.py
尝试使用名为
orig
的变量或以其他方式弄乱您的代码。是的,我已经编辑了我的代码以传递一个单独的
globals
字典。答对了!您答对了:)万分感谢!现在有没有办法选择一个不同的目录来写入输出文件?干杯!如果你没有捕获到它,在那奇怪的熟悉代码中使用check_call有什么意义?@raser最好有一个致命的异常,而不是吞下一个最终的错误。谢谢Rem,这很有效,但它只写出了你所看到的东西r您编写的字符串,而不是“我要放入文件的字符串”。real script file.py中有什么内容,它返回我要写入output.txt文件的实际字符串:(我认为,如果我们将file.py的输出分配给一个变量,然后使用该变量,这将起作用……知道如何做吗?THX@user2957951:请始终向此人提及错误,以便他能以更高的机会进一步帮助您。如果您能提供一些可验证的代码来支持答案,那就太好了。D:\Python\Python3>
scrap.py>results.txt
python filename.py >> textfile.txt