簡體   English   中英

將os.system()輸出重定向到.txt文件

[英]To redirect os.system() output to a .txt file

我是Python的新手。 我有Unix命令列表("uname -a","uptime","df -h","ifconfig -a","chkconfig --list","netstat -rn","cat /proc/meminfo","ls -l /dev") ,我想運行它們並將整個輸出重定向到.txt文件。 我進行了很多搜索,但沒有找到合適的解決方案,或者我誤解了。

我可以使用此for循環在stdout上獲取輸出,但無法重定向到文件。

def commandsoutput():
    command = ("uname -a","uptime","df -h","ifconfig -a","chkconfig --list","netstat -rn","cat /proc/meminfo","ls -l /dev")

    for i in command:
        print (os.system(i))

commandsoutput()

os.system返回命令的退出代碼,而不是其輸出。 也已棄用。

使用subprocess代替:

import subprocess

def commandsoutput():
     command = ("uname -a","uptime","df -h","ifconfig -a","chkconfig --list","netstat -rn","cat /proc/meminfo","ls -l /dev")

     with open('log.txt', 'a') as outfile:
         for i in command:
              subprocess.call(i, stdout=outfile)

commandsoutput()

此答案使用os.popen ,它允許您將命令的輸出寫入文件中:

import os
def commandsoutput():
    commands = ("uname -a","uptime","df -h","ifconfig -a","chkconfig --list","netstat -rn","cat /proc/meminfo","ls -l /dev")
    with open('output.txt','a') as outfile:
        for command in commands:
            outfile.write(os.popen(command).read()+"\n")
commandsoutput()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM