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

时间:2014-02-23 02:09:10

标签: python output

我正在执行一个.py文件,它会吐出一个给定的字符串。这个命令工作正常

execfile('file.py')

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

我尝试了这个,但是没有用:(

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

我得到的就是这个:

tugsjs6555

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

感谢您的帮助

8 个答案:

答案 0 :(得分:13)

您正在做的是检查execfile('file.py')对字符串'output.txt'

的输出

你可以做你想做的子进程

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

答案 1 :(得分:4)

这也是有效的,因为在执行“file.py”之前将标准输出到文件output.txt:

import sys

orig = sys.stdout
with open("output.txt", "wb") as f:
    sys.stdout = f
    try:
        execfile("file.py", {})
    finally:
        sys.stdout = orig

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

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

答案 2 :(得分:1)

请改用:

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

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

答案 3 :(得分:1)

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

  
    
      

PCname:〜/ Path / WorkFolderName $ python scriptname.py>output.txt

    
  

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

答案 4 :(得分:0)

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()

答案 5 :(得分:0)

在上面的帖子和其他一些链接中使用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()

上面的代码是列出我的下载文件夹中的所有文件。它将输出保存到listallfiles.txt的输出。如果文件不在那里,它将每次创建并用新的替换它来运行此代码。您唯一需要注意的是它将在保存py脚本的文件夹中创建输出文件。看看你怎么走,希望它有所帮助。

答案 6 :(得分:0)

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

python filename.py >> textfile.txt

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

只有在cmd上显示结果并且您希望在不截断的情况下查看整个结果时,上述情况才会出现。

答案 7 :(得分:0)

您也可以通过转到使用cmd保存python脚本的文件夹的路径来执行此操作,然后执行name.py> FILENAME.TXT 它在Windows 10上为我工作