web-dev-qa-db-ja.com

pythonスクリプトを実行し、出力をtxtファイルに書き込む方法は?

私は.pyファイルを実行していますが、これは特定の文字列を吐き出します。このコマンドは正常に動作します

execfile( 'file.py')

しかし、(シェルに表示されることに加えて)出力をテキストファイルに書き込む必要があります。

私はこれを試しましたが、機能していません:(

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

私が得るすべてはこれです:

tugsjs6555

False

「False」は正常に書き込まれていない出力ファイルを指していると思います:(

ご協力いただきありがとうございます

9
user2957951

あなたがしているのは、文字列_'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);
_
14
Nick Beeuwsaert

「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
4
aknuds1

代わりにこれを使用してください:

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

それをメインファイルに入れて実行してください。 2行目の文字列を、文字列または出力する文字列を含む変数に置き換えます。さらに質問がある場合は、以下に投稿してください。

1

スクリプトを実行して出力をテキストファイルに取得する最も簡単な方法は、ターミナルで次のように入力することです。

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

*コマンドを実行する前に、作業フォルダーにoutput.txtを作成したことを確認してください。

1
Dibin Joseph
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()
0
don

上記の投稿で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スクリプトが保存されているフォルダーに出力ファイルを作成することだけです。あなたがどのように行くかを見て、それが役立つことを願っています。

0
Nitin Upadhyay

Windowsコマンドプロンプトでファイルを実行している場合:

python filename.py >> textfile.txt

出力は、filename.pyファイルが保存されているのと同じフォルダー内のtextfile.txtにリダイレクトされます。

上記は、cmdに結果が表示されており、切り捨てることなく結果全体を表示する場合のみです。

また、pythonスクリプトをcmdで保存したフォルダーのパスに移動して、name.py> filename.txtを実行することもできます。

0
KowaiiNeko