Tôi chỉ cần một gợi ý về cách thực hiện mọi việc đúng cách.subprocess.Popen: cách chuyển danh sách làm đối số
Giả sử tôi có một tập lệnh có tên script.py sử dụng danh sách tên làm đối số ["name1", "name2", v.v ...].
Tôi muốn gọi tập lệnh này từ tập lệnh khác bằng mô-đun phụ. Vì vậy, những gì tôi muốn làm là như sau:
myList = ["name1", "name2", "name3"]
subprocess.Popen(["python", "script.py", myList])
Tất nhiên điều đó không hoạt động vì quy trình con. Phương pháp mở yêu cầu danh sách các chuỗi làm đối số. Vì vậy, tôi coi làm những điều sau đây:
subprocess.Popen(["python", "script.py", str(myList)])
Bây giờ quá trình bắt đầu nhưng nó không hoạt động bởi vì nó có một chuỗi như là đối số và không phải là một danh sách. Làm thế nào tôi nên sửa chữa đúng cách?
hoặc '.extend()' nếu bạn không chắc chắn về loại đối số bổ sung. –
@NiklasR hoặc '+ list (myList)' – falsetru
'extend' chỉ hữu ích nếu bạn sửa đổi danh sách được đặt tên trước cuộc gọi. 'subprocess.Popen ([" python "," script.py "]. extend (myList))' sẽ chuyển 'None' (giá trị trả về' extend') làm đối số đầu tiên và duy nhất cho 'Popen()'. – chepner