Saya menjalankan skrip python terpisah dari skrip python "utama" saya menggunakan subprocess.Popen(), alasan saya menggunakan subproses adalah karena saya dapat menangkap kesalahan. Masalah saya adalah jika skrip terpisah menggunakan pernyataan input("Enter something: ") dengan prompt (teks di antara tanda kutip) maka itu (prompt) tidak akan ditampilkan di konsol saat menjalankan skrip "utama" yang kemudian, pada gilirannya, menjalankan skrip terpisah melalui subprocess.Popen().

Katakanlah skrip python "utama" terlihat seperti ini:

cmd = "python3 tmp.py"

output = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
stout, sterror = output.communicate()

Dan "tmp.py" terlihat seperti ini:

text = input("Enter something: ")

Ketika saya sekarang menjalankan skrip "utama" output hanya akan menjadi kursor berkedip di mana saya dapat memasukkan teks, tekan enter dan simpan input dalam variabel teks, tetapi masalahnya adalah bahwa prompt ("Masukkan sesuatu: ") tidak akan ditampilkan/tidak ada! Kenapa ini? dan bagaimana saya bisa memperbaikinya?

1
user10554170 1 Agustus 2019, 23:29

1 menjawab

Jawaban Terbaik

Anda telah mengalihkan stdout ke PIPE. Jadi di situlah teks "Masukkan sesuatu:" pergi ke...

0
Roland Smith 1 Agustus 2019, 20:47