1
我正在寫一個命令行工具(我們稱之爲interactive_rm
),是應該從標準輸入線讀取文件路徑線,使得它可以與UNIX管道在下面的示例中使用,如:從管道讀取STDIN時獲取用戶輸入?
$ find . | interactive_rm
我目前正在讀從標準輸入每個路徑是這樣的:該工具刪除路徑
def _parse_stdin():
for line in sys.stdin:
yield prepare_line(line)
現在的問題......之前,應該要求用戶進行確認。要做到這一點,我會用input()
這樣的:
for path in _parse_stdin():
print('Do you want to delete this path: [y/n]\n' + path)
answer = input()
if answer == 'y':
delete(path)
但是,這並不工作,因爲STDIN已經被管道佔據,所以input()
功能被跳過,或者我結束了一個「的EOFError:EOF當讀一行「。
有沒有人知道這個解決方案?