1
final="cacls " + "E:/" + "\"" + list1[2] + " " + list1[3] + "\""  + "  /p " + str
os.system(final)

Pythonを使用してフォルダーにアクセス許可を設定しようとしていますが、このコマンドの実行中に、ユーザー入力も提供する必要があります。

ARE YOU SURE(Y / N)と表示され、ユーザーは「Y」または「N」を入力する必要があります

Pythonを使用して、上記のコードとともにユーザー入力「Y」を送信する方法はありますか?

    pro = subprocess.Popen(final,shell=True, stdin=subprocess.PIPE)
    pro.communicate(bytes("Y\r\n",'utf-8'))

次のコードを追加しました。プログラムは、許可を設定せずに終了します。

http://jimmyg.org/blog/2009/working-with-python-subprocess.html#writing-to-standard-input

4

2 に答える 2

3

サブプロセスモジュールを使用してみてください

import subprocess
cmd = ["cacls",  "E:/" + list1[2], list1[3], "/p", str]

pro = subprocess.Popen(final, stdin=subprocess.PIPE)
pro.communicate("y\r\n")
于 2012-04-05T12:12:42.517 に答える
-1

スマートプログラマーとして、PBSを使用する

次に、コードは次のとおりです。

from pbs import type as echo# Isn't it echo for Windows? If not, use the correct one

script = Command("/path/to/cacls ")
print script(echo("Y"), ("E:/" + "\"" + list1[2] + " " + list1[3] + "\""  + "  /p " + str).split())
于 2012-04-06T06:12:40.893 に答える