BoJack Horseman
BoJack Horseman

Reputation: 4450

python Save the output of a shell command into a text file

I want to save the output of a shell command into a textfile via python. This is my actual, pretty basic python code:

Edit here is the final script, thank you for your help :)

import subprocess

ip_adress_4 = 0    
pr = open("pointer_record.txt", "w")

while (ip_adress_4 < 255):
    ip_adress_4 = ip_adress_4 + 1
    ip_adress = '82.198.205.%d' % (ip_adress_4,)
    subprocess.Popen("host %s" % ip_adress, stdout=pr, shell=True)

Upvotes: 4

Views: 23030

Answers (2)

Raydel Miranda
Raydel Miranda

Reputation: 14360

Try something like this:

import subprocess
file_ = open("ouput.txt", "w")
subprocess.Popen("ls", stdout=file_)

EDIT: Matching your needs

import subprocess

file_ = open("ouput.txt", "w")
subprocess.Popen(["host", ipAddress], stdout=file_)

Upvotes: 14

Oliver Matthews
Oliver Matthews

Reputation: 7863

Use subprocess.check_output instead of Popen That will give you a string back containing the output, which you can then write out to the file.

Upvotes: 2

Related Questions