การประมวลผลหลายตัวดำเนินการคำสั่งสคริปต์หลามพร้อมอาร์กิวเมนต์วนซ้ำ [ซ้ำกัน]

ฉันมีสคริปต์หลามชื่อ generate_the_result.py ผลลัพธ์สามารถสร้างขึ้นได้โดยการรันสคริปต์นั้นด้วยอาร์กิวเมนต์เดียว ตัวอย่างเช่น generate_the_result.py my_arg_01

ฉันมีไฟล์ที่เนื้อหาเป็นรายการอาร์กิวเมนต์ของสคริปต์

## my list of arguments
my_arg_01
my_arg_02
my_arg_03
my_arg_04
my_arg_05
.
.
.

ฉันต้องการดำเนินการแต่ละอาร์กิวเมนต์ภายในไฟล์ของฉันด้านบนบน generate_the_result.pyscript ทีละตัวโดยการวนซ้ำ วิธีที่ดีที่สุดในการทำเช่นนั้นใน python คืออะไร?

มีข้อโต้แย้งมากมายภายในไฟล์

วิธีแก้ปัญหาที่เป็นไปได้คืออ่านไฟล์ ทำลูป ภายในลูปดำเนินการ subprocess.call("generate_the_result.py [i]") แต่นี่เป็นวิธีที่ดีที่สุดหรือไม่


person user46543    schedule 04.04.2018    source แหล่งที่มา
comment
คุณสามารถเริ่มต้นด้วยการอ่านอาร์กิวเมนต์จากไฟล์... จากนั้นเริ่มสคริปต์อื่นด้วยอาร์กิวเมนต์เหล่านั้น... จากนั้นคุณก็ทำเสร็จแล้ว จริงๆ แล้วมีปัญหาอะไรล่ะ? การอ่านข้อความจากไฟล์และกระบวนการเริ่มต้นเป็นงานง่าย ๆ (และ Google ได้อย่างง่ายดาย)   -  person Aran-Fey    schedule 04.04.2018
comment
คุณอยู่บน Linux หรือเปล่า?   -  person eagle    schedule 04.04.2018
comment
ฉันกำลังปิดเรื่องนี้ด้วยข้อมูลซ้ำที่เกี่ยวข้อง เพียงอ่านข้อโต้แย้งของคุณและเรียกใช้ฟังก์ชันของคุณโดยแต่ละข้อในสคริปต์   -  person jpp    schedule 04.04.2018
comment
ฉันจะเสนอโซลูชันการประมวลผลหลายตัวโดยใช้เชลล์เป็นทางเลือกในการป้อนข้อโต้แย้ง   -  person eagle    schedule 04.04.2018
comment
@eagle ฉันไม่แน่ใจว่าคำถามเกี่ยวกับการประมวลผลหลายตัว หากผู้ใช้อัปเดตคำถาม ก็สามารถเปิดใหม่ได้หากไม่ซ้ำกัน   -  person jpp    schedule 04.04.2018
comment
ขอบคุณสำหรับความคิดเห็น คุณช่วยบอกใบ้ให้ฉันทำ @eagle ได้ไหม   -  person user46543    schedule 04.04.2018
comment
คุณต้องแก้ไขคำถามหากนั่นคือสิ่งที่คุณต้องการ ไม่เช่นนั้นจะเป็นการหลอกลวง   -  person eagle    schedule 04.04.2018


คำตอบ (1)


ในความคิดของฉันวิธีที่ดีที่สุดคือกำหนดเส้นทางของไฟล์นั้นซึ่งมี args และเขียนผลลัพธ์ลงในไฟล์เอาต์พุตอื่น หากไฟล์อยู่ในรูปแบบ csv คุณสามารถวนซ้ำ aruments ได้อย่างง่ายดาย

generate_the_result.py file_name.csv

person karthik reddy    schedule 04.04.2018