test
python
1import subprocess 2 3def ls(): 4 CMD = "ls -al" 5 return subprocess.check_output(CMD,shell=True).decode('utf-8') 6 7 8def main(): 9 ret = ls() 10 print(ret) 11 12if __name__ == '__main__': 13 main()
結果↓
[root@theo python]# python test 合計 5676 drwxr-xr-x 2 root root 73 5月 21 11:15 . drwxr-xr-x 6 root root 134 5月 18 17:53 .. -rw-r--r-- 1 root root 5789469 5月 18 18:30 delegated-ripencc-latest -rw-r--r-- 1 root root 10695 5月 18 19:19 file -rwxr-xr-x 1 root root 767 5月 21 10:47 hoge.py -rw-r--r-- 1 root root 198 5月 21 11:12 test
この複数行にわたる結果を1行ずつ処理したいのですが、可能でしょうか?
方法がわからないため、現在は一旦ファイルに書き出して、読み出して処理しています。
現在↓
import subprocess def ls(): CMD = "ls -al" return subprocess.check_output(CMD,shell=True).decode('utf-8') def write_read(arg1): array = [] with open('./tmp_memo','w') as f: f.write(arg1) with open('./tmp_memo','r') as f: lines = f.readlines() for i in lines: ############## # ここで処理 # ごにょごにょ〜 # ごにょごにょ〜 # ごにょごにょ〜 ############## array.append(i) return array def main(): ret1 = ls() ret2 = write_read(ret1) print(ret2) if __name__ == '__main__': main()
この方法(わざわざ結果を書き込んで、読み出しする方法)以外で、変数の中身が複数行の時に1行ずつ処理する方法がありましたらご教示いただけませんでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/21 02:36