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

我正在尝试使用 Python 设置文件夹的权限,但是在运行此命令时,也需要提供用户输入,即

它询问您是否确定(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 回答