thể trùng lặp:
Parsing a stdout in PythonRedirect subprocess cho một biến như là một chuỗi
Với lệnh sau, nó in '640x360'
>>> command = subprocess.call(['mediainfo', '--Inform=Video;%Width%x%Height%',
'/Users/david/Desktop/1video.mp4'])
640x360
Làm thế nào tôi sẽ thiết lập một biến bằng chuỗi đầu ra, vì vậy tôi có thể nhận được x='640x360'
? Cảm ơn bạn.
Cập nhật: câu trả lời có thể tìm thấy tại đây: Parsing a stdout in Python. Điều này làm việc cho tôi:
>>> p1 = subprocess.Popen(['mediainfo', '--Inform=Video;%Width%x%Height%',
'/Users/david/Desktop/10stest720p.mov'],stdout=PIPE)
>>> output=p1.communicate()[0].strip('\n')
>>> output
'1280x688'
Tôi chỉ gõ câu trả lời tương tự, nhưng chỉ muốn nói rằng tôi muốn đề nghị sử dụng Popen thay vì gọi vì nó hơi rõ ràng hơn và làm điều tương tự. subprocess.call chỉ là một chức năng thuận tiện cho Popen. – Vorticity
nhưng gọi() in đầu ra và trả về mã thoát của quá trình của bạn, đó là 0 nếu bạn xử lý thành công. – rocksportrocker
Đó là một điểm tốt mà tôi đã quên. Cho rằng, gọi() có thể là cách tốt hơn để đi trước 2,7, nhưng câu trả lời của Scott Anderson có khả năng là tốt hơn trong 2,7 vì nó tự động kiểm tra trạng thái thoát danh nghĩa. – Vorticity