Hướng dẫn how do i run multiple commands in python os? - làm cách nào để chạy nhiều lệnh trong hệ điều hành python?

Tôi muốn gọi nhiều lệnh từ tập lệnh Python của tôi. Tuy nhiên, tôi đã thử sử dụng OS.System (), tôi đang gặp sự cố khi thư mục hiện tại được thay đổi.

example:

os.system("ls -l")
os.system("") # This will change the present working directory 
os.system("launchMyApp") # Some application invocation I need to do.

Bây giờ, cuộc gọi thứ ba để ra mắt không hoạt động.

Hướng dẫn how do i run multiple commands in python os? - làm cách nào để chạy nhiều lệnh trong hệ điều hành python?

Oguz Ismail

42K13 Huy hiệu vàng44 Huy hiệu bạc65 Huy hiệu Đồng13 gold badges44 silver badges65 bronze badges

Đã hỏi ngày 18 tháng 11 năm 2013 lúc 7:19Nov 18, 2013 at 7:19

0

os.system là một trình bao bọc cho hàm C tiêu chuẩn system(), và do đó đối số của nó có thể là bất kỳ lệnh shell hợp lệ nào miễn là nó phù hợp với bộ nhớ dành cho môi trường và danh sách đối số của một quy trình.any valid shell command as long as it fits into the memory reserved for environment and argument lists of a process.

Vì vậy, hãy tách các lệnh đó với dấu chấm phẩy hoặc ngắt dòng và chúng sẽ được thực thi tuần tự trong cùng một môi trường.

os.system(" ls -l; ; launchMyApp")
os.system('''
ls -l

launchMyApp
''')

Oguz Ismail

42K13 Huy hiệu vàng44 Huy hiệu bạc65 Huy hiệu Đồng13 gold badges44 silver badges65 bronze badges

Đã hỏi ngày 18 tháng 11 năm 2013 lúc 7:19Jun 29, 2017 at 22:40

os.system là một trình bao bọc cho hàm C tiêu chuẩn system(), và do đó đối số của nó có thể là bất kỳ lệnh shell hợp lệ nào miễn là nó phù hợp với bộ nhớ dành cho môi trường và danh sách đối số của một quy trình.Anynomous

Vì vậy, hãy tách các lệnh đó với dấu chấm phẩy hoặc ngắt dòng và chúng sẽ được thực thi tuần tự trong cùng một môi trường.3 silver badges3 bronze badges

0

Đã trả lời ngày 29 tháng 6 năm 2017 lúc 22:40

import os

os.system("ls -l")
os.chdir('path') # This will change the present working directory
os.system("launchMyApp") # Some application invocation I need to do.

AnynomousanynomousFeb 25, 2019 at 7:11

Hướng dẫn how do i run multiple commands in python os? - làm cách nào để chạy nhiều lệnh trong hệ điều hành python?

3273 Huy hiệu bạc3 Huy hiệu đồngMuthu Kumar

Thử cái này11 silver badges24 bronze badges

Đã trả lời ngày 25 tháng 2 năm 2019 lúc 7:11

os.system(" ls -l; ; launchMyApp")
1 is a very good way to approach the problem, used in the example below:

import os
os.system('''cd /
mkdir somedir'''.replace('\n', ';')) # or use & for Windows

Muthu Kumarmuthu KumarApr 23, 2018 at 20:55

79511 Huy hiệu bạc24 Huy hiệu đồngAnonymous

Nó rất đơn giản, thực sự. Đối với Windows tách các lệnh của bạn với &, cho Linux, hãy tách chúng bằng

os.system(" ls -l; ; launchMyApp")
0.
os.system(" ls -l; ; launchMyApp")
1 là một cách rất tốt để tiếp cận vấn đề, được sử dụng trong ví dụ dưới đây:4 gold badges15 silver badges35 bronze badges

0

Đã trả lời ngày 23 tháng 4 năm 2018 lúc 20:55

Ẩn danh

7094 Huy hiệu vàng15 Huy hiệu bạc35 Huy hiệu Đồng

#!/usr/bin/env python
from subprocess import check_call

check_call(r"""set -e
ls -l
 # This will change the present working directory 
launchMyApp""", shell=True)

Mỗi quá trình có thư mục làm việc hiện tại riêng. Thông thường, các quy trình con không thể thay đổi thư mục của cha mẹ, đó là lý do tại sao

os.system(" ls -l; ; launchMyApp")
2 là lệnh shell tích hợp: nó chạy trong cùng một quy trình (shell).

Mỗi cuộc gọi

os.system(" ls -l; ; launchMyApp")
3 tạo ra một quy trình shell mới. Thay đổi thư mục bên trong các quá trình này không có tác dụng đối với quy trình Python cha mẹ và do đó trên các quy trình shell tiếp theo.Feb 17, 2015 at 5:12

Để chạy nhiều lệnh trong cùng một phiên bản shell, bạn có thể sử dụng mô -đun

os.system(" ls -l; ; launchMyApp")
4:jfs

Nếu bạn biết thư mục đích; Thay vào đó, sử dụng tham số

os.system(" ls -l; ; launchMyApp")
5 được đề xuất bởi @puffin GDI.183 gold badges950 silver badges1626 bronze badges

Đã trả lời ngày 17 tháng 2 năm 2015 lúc 5:12

JFSJFSNov 18, 2013 at 7:25

386K183 Huy hiệu vàng950 Huy hiệu bạc1626 Huy hiệu Đồngvolcano

Khi bạn gọi Os.System (), mỗi khi bạn tạo một Subshell - đóng ngay lập tức khi Os.System trả về (quá trình phụ là thư viện được đề xuất để gọi các lệnh HĐH). Nếu bạn cần gọi một bộ lệnh - gọi chúng trong một cuộc gọi. BTW, bạn có thể thay đổi Giám đốc làm việc từ Python - Os.chdir20 silver badges28 bronze badges

1

Đã trả lời ngày 18 tháng 11 năm 2013 lúc 7:25

example:

subprocess.Popen('launchMyApp', cwd=r'/working_directory/')

VolcanovolcanoNov 18, 2013 at 7:28

Hướng dẫn how do i run multiple commands in python os? - làm cách nào để chạy nhiều lệnh trong hệ điều hành python?

3.54820 Huy hiệu bạc28 Huy hiệu đồngPuffin GDI

Cố gắng sử dụng SubProcess.Popen và

os.system(" ls -l; ; launchMyApp")
55 gold badges30 silver badges37 bronze badges

3

Đã trả lời ngày 18 tháng 11 năm 2013 lúc 7:28

os.system(" ls -l; ; launchMyApp")
7

GDI GDIPUFFIN GDI

1.6925 Huy hiệu vàng30 Huy hiệu bạc37 Huy hiệu ĐồngSep 8, 2016 at 18:04

Chỉ dùngCybersupernova

Tôi nghĩ bạn đã có ý tưởng phải làm gì1 gold badge18 silver badges35 bronze badges

0

os.system(" ls -l; ; launchMyApp")
8

Hướng dẫn how do i run multiple commands in python os? - làm cách nào để chạy nhiều lệnh trong hệ điều hành python?

Đã trả lời ngày 8 tháng 9 năm 2016 lúc 18:04

Cybersupernovacybersupernova60 gold badges75 silver badges94 bronze badges

1.7731 Huy hiệu vàng18 Huy hiệu bạc35 Huy hiệu đồngSep 25, 2020 at 13:38

Hướng dẫn how do i run multiple commands in python os? - làm cách nào để chạy nhiều lệnh trong hệ điều hành python?

Tylerh

Hướng dẫn how do i run multiple commands in python os? - làm cách nào để chạy nhiều lệnh trong hệ điều hành python?

Đã trả lời ngày 8 tháng 9 năm 2016 lúc 18:04

Cybersupernovacybersupernova60 gold badges75 silver badges94 bronze badges

1.7731 Huy hiệu vàng18 Huy hiệu bạc35 Huy hiệu đồngNov 18, 2013 at 7:24

TylerhHoly Mackerel

Huy hiệu vàng 20.4K601 gold badge23 silver badges40 bronze badges