Hướng dẫn can i call one python script from another? - tôi có thể gọi một tập lệnh python từ một tập lệnh khác không?

Trong hướng dẫn ngắn này, bạn sẽ thấy cách chạy một kịch bản Python từ một kịch bản Python khác.

Cụ thể hơn, bạn sẽ thấy các bước tới:

  • Chạy một tập lệnh python từ một tập lệnh khác
  • Gọi một biến cụ thể từ tập lệnh python này sang tập lệnh khác

Nhưng trước khi chúng tôi bắt đầu, đây là một mẫu đơn giản mà bạn có thể sử dụng để chạy một tập lệnh Python từ một tập lệnh khác [đối với các tập lệnh Python được lưu trữ trong cùng một thư mục]:

import script_name_to_call

Bước 1: Đặt các tập lệnh Python vào cùng một thư mục

Để bắt đầu, hãy đặt các tập lệnh Python của bạn vào cùng một thư mục.

Ví dụ, hãy để giả sử rằng hai tập lệnh Python [được gọi là Python_1 và Python_2] được lưu trữ trong cùng một thư mục:python_1 and python_2] are stored in the same folder:

Python_1 Python_2
python_2

Mục tiêu cuối cùng là chạy tập lệnh Python_2 từ tập lệnh Python_1.

Bước 2: Thêm cú pháp

Tiếp theo, thêm cú pháp vào từng tập lệnh của bạn.

Chẳng hạn, hãy để thêm cú pháp sau trong python_1 & nbsp; script: script:python_1 script:

import python_2
print['what are you up to?']

Where:

  • Dòng đầu tiên của ‘Nhập Python_2, trong tập lệnh Python_1, sẽ gọi tập lệnh Python_2 thứ haipython_1 script, would call the second python_2 script
  • Dòng thứ hai của mã chỉ đơn giản là in biểu thức của ‘Bạn đang làm gì?

Bây giờ, hãy để thêm cú pháp trong tập lệnh Python_2:python_2 script:

print['hello world']

Trong trường hợp này, biểu thức của ‘Hello World, sẽ được in khi chạy tập lệnh thứ hai.

Lưu ý rằng trước tiên bạn phải lưu cú pháp được ghi trong tập lệnh Python_2 trước khi gọi nó từ một tập lệnh khác.save the syntax that was captured in the python_2 script before calling it from another script.

Bước 3: Chạy một tập lệnh Python từ một bản khác

Bây giờ bạn sẽ cần chạy tập lệnh từ hộp Python_1 để gọi tập lệnh thứ hai.python_1 box in order to call the second script.

Lưu ý rằng kết quả của tập lệnh Python_2 sẽ được hiển thị đầu tiên và chỉ sau đó kết quả của tập lệnh Python_1 mới được hiển thị:

hello world
what are you up to?

Gọi một biến cụ thể từ tập lệnh python này sang tập lệnh khác

Bây giờ, hãy xem cách gọi một biến cụ thể [mà chúng ta sẽ gọi ‘X,] từ tập lệnh Python_2 vào tập lệnh Python_1.

Trong trường hợp đó, bạn sẽ cần chỉnh sửa cú pháp trong tập lệnh Python_1 thành phần sau:python_1 script to the following:

import python_2 as p2
print[p2.x]

Tiếp theo, gán một giá trị [ví dụ: ‘Xin chào thế giới] cho biến‘ X, trong tập lệnh Python_2:python_2 script:

x = 'hello world'

Don Tiết quên lưu các thay đổi trong tập lệnh Python_2.python_2 script.

Cuối cùng, hãy chạy cú pháp từ tập lệnh Python_1 và biểu thức ‘Hello World sẽ được in:python_1 script, and the ‘hello world’ expression would be printed:

hello world

Tương tác của các biến từ hai tập lệnh

Trong phần cuối cùng của hướng dẫn này, bạn sẽ thấy các biến từ hai tập lệnh có thể tương tác như thế nào.

Ví dụ, hãy để giả sử rằng tập lệnh python_1 có biến là y = 2, trong khi tập lệnh python_2 có biến là x = 5. Mục tiêu là tổng hợp hai biến đó và hiển thị kết quả.

Đầu tiên, hãy sửa đổi cú pháp trong tập lệnh Python_1 thành phần sau:python_1 script to the following:

import python_2 as p2
y = 2
print[p2.x + y]

Sau đó, thay đổi cú pháp trong tập lệnh Python_2 thành:python_2 script to:

x = 5

Như trước đây, don không quên lưu các thay đổi trong tập lệnh Python_2.python_2 script.

Cuối cùng, hãy chạy cú pháp từ tập lệnh Python_1 và bạn sẽ nhận được ‘7, đó thực sự là tổng của hai biến:python_1 script, and you’ll get ‘7’ which is indeed the sum of the two variables:

7

439

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một tập lệnh có tên

hello world
what are you up to?
2 không có trong một mô -đun. Nó chỉ có mã nên thực thi khi bản thân tập lệnh được chạy. Không có chức năng, lớp, phương thức, v.v. Tôi có một tập lệnh khác chạy như một dịch vụ. Tôi muốn gọi
hello world
what are you up to?
2 từ tập lệnh đang chạy dưới dạng dịch vụ.

Ví dụ:

Tệp

hello world
what are you up to?
2:
hello world
what are you up to?
2
:

import python_2
print['what are you up to?']
0

Tệp

hello world
what are you up to?
5:
hello world
what are you up to?
5
:

import python_2
print['what are you up to?']
1

Tôi biết một phương pháp đang mở tệp, đọc nội dung và về cơ bản đánh giá nó. Tôi cho rằng có một cách tốt hơn để làm điều này. Hoặc ít nhất tôi hy vọng như vậy.

Martineau

Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges

hỏi ngày 27 tháng 7 năm 2009 lúc 6:52Jul 27, 2009 at 6:52

Josh Smeatonjosh SmeatonJosh Smeaton

47K24 Huy hiệu vàng127 Huy hiệu bạc164 Huy hiệu đồng24 gold badges127 silver badges164 bronze badges

3

Cách thông thường để làm điều này là một cái gì đó như sau đây.

test1.py

import python_2
print['what are you up to?']
2

service.py

import python_2
print['what are you up to?']
3

Đã trả lời ngày 27 tháng 7 năm 2009 lúc 7:12Jul 27, 2009 at 7:12

6

Điều này có thể xảy ra trong Python 2 bằng cách sử dụng

import python_2
print['what are you up to?']
4

Xem tài liệu để xử lý các không gian tên, nếu quan trọng trong trường hợp của bạn.

Trong Python 3, điều này có thể sử dụng [nhờ @Fantastory]

import python_2
print['what are you up to?']
5

Tuy nhiên, bạn nên xem xét sử dụng một cách tiếp cận khác; Ý tưởng của bạn [từ những gì tôi có thể thấy] trông không sạch sẽ lắm.

Woodsy

3.0572 Huy hiệu vàng27 Huy hiệu bạc48 Huy hiệu đồng2 gold badges27 silver badges48 bronze badges

Đã trả lời ngày 27 tháng 7 năm 2009 lúc 7:03Jul 27, 2009 at 7:03

Balpha ♦ Balphabalpha

48.9K17 Huy hiệu vàng112 Huy hiệu bạc129 Huy hiệu đồng17 gold badges112 silver badges129 bronze badges

7

Cách khác:

Tệp Test1.py:

import python_2
print['what are you up to?']
6

File Service.py:

import python_2
print['what are you up to?']
7

Ưu điểm của phương pháp này là bạn không phải chỉnh sửa tập lệnh Python hiện có để đặt tất cả mã của nó vào chương trình con.

Tài liệu: Python 2, Python 3

Jacktose

6707 Huy hiệu bạc21 Huy hiệu Đồng7 silver badges21 bronze badges

Đã trả lời ngày 27 tháng 6 năm 2012 lúc 16:01Jun 27, 2012 at 16:01

Dick Goodwindick GoodwinDick Goodwin

1.1091 Huy hiệu vàng7 Huy hiệu bạc2 Huy hiệu đồng1 gold badge7 silver badges2 bronze badges

11

import python_2
print['what are you up to?']
8

Sử dụng hệ điều hành, bạn có thể thực hiện các cuộc gọi trực tiếp đến thiết bị đầu cuối của bạn. Nếu bạn muốn được cụ thể hơn nữa, bạn có thể kết hợp chuỗi đầu vào của mình với các biến cục bộ, tức là.

import python_2
print['what are you up to?']
9

Đã trả lời ngày 5 tháng 12 năm 2016 lúc 8:07Dec 5, 2016 at 8:07

Alex Mapleyalex MapleyAlex Mapley

6636 Huy hiệu bạc11 Huy hiệu đồng6 silver badges11 bronze badges

2

Nếu bạn muốn Test1.py vẫn có thể thực thi với chức năng giống như khi nó được gọi là Inside Service.py, thì hãy làm một cái gì đó như:

test1.py

print['hello world']
0

service.py

print['hello world']
1

Đã trả lời ngày 27 tháng 7 năm 2009 lúc 7:11Jul 27, 2009 at 7:11

2

Tôi thích Runpy:

print['hello world']
2

Đã trả lời ngày 14 tháng 11 năm 2019 lúc 12:56Nov 14, 2019 at 12:56

FlavioflavioFlavio

6821 Huy hiệu vàng9 Huy hiệu bạc23 Huy hiệu đồng1 gold badge9 silver badges23 bronze badges

1

Bạn không nên làm điều này. Thay vào đó, làm:

test1.py:

print['hello world']
3

service.py

print['hello world']
4

Đã trả lời ngày 27 tháng 7 năm 2009 lúc 7:06Jul 27, 2009 at 7:06

Thedzthedzthedz

5.4463 Huy hiệu vàng24 Huy hiệu bạc28 Huy hiệu đồng3 gold badges24 silver badges28 bronze badges

1

Sử dụng

hello world
what are you up to?
6 cho lần sử dụng đầu tiên - nó sẽ thực thi tập lệnh. Đối với các yêu cầu sau này, hãy coi tập lệnh là một mô -đun đã nhập và gọi phương thức
hello world
what are you up to?
7.

Khi

hello world
what are you up to?
8 được thực thi:

  • Các mô-đun Python Mã được biên dịch lại và mã cấp độ mô-đun được sắp xếp lại, xác định một tập hợp các đối tượng mới được liên kết với các tên trong từ điển mô-đun. Chức năng init của các mô -đun mở rộng không được gọimodule-level code reexecuted, defining a new set of objects which are bound to names in the module’s dictionary. The init function of extension modules is not called

Một kiểm tra đơn giản của

hello world
what are you up to?
9 có thể được sử dụng để gọi hành động thích hợp. Để tiếp tục gọi tên tập lệnh dưới dạng chuỗi [
import python_2 as p2
print[p2.x]
0], hãy sử dụng tích hợp 'Nhập []'.import[]' builtin.

print['hello world']
5

Đã trả lời ngày 27 tháng 7 năm 2009 lúc 7:11Jul 27, 2009 at 7:11

Tôi thích Runpy:gimel

Đã trả lời ngày 14 tháng 11 năm 2019 lúc 12:5610 gold badges74 silver badges104 bronze badges

3

Flavioflavio

6821 Huy hiệu vàng9 Huy hiệu bạc23 Huy hiệu đồng

Bạn không nên làm điều này. Thay vào đó, làm:

Đã trả lời ngày 27 tháng 7 năm 2009 lúc 7:06Nov 28, 2019 at 3:02

ThedzthedzChao Chen

5.4463 Huy hiệu vàng24 Huy hiệu bạc28 Huy hiệu đồng1 silver badge4 bronze badges

Sử dụng

hello world
what are you up to?
6 cho lần sử dụng đầu tiên - nó sẽ thực thi tập lệnh. Đối với các yêu cầu sau này, hãy coi tập lệnh là một mô -đun đã nhập và gọi phương thức
hello world
what are you up to?
7.

Đã trả lời ngày 27 tháng 7 năm 2009 lúc 7:04Jul 27, 2009 at 7:04

Anurag uniyalanurag uniyalAnurag Uniyal

83.5K39 Huy hiệu vàng170 Huy hiệu bạc216 Huy hiệu đồng39 gold badges170 silver badges216 bronze badges

1

Quá trình này có phần không chính thống, nhưng sẽ hoạt động trên tất cả các phiên bản Python,

Giả sử bạn muốn thực thi một tập lệnh có tên là 'đề xuất.py' bên trong một điều kiện 'nếu', sau đó sử dụng,

print['hello world']
6

Kỹ thuật là khác nhau, nhưng hoạt động!

Đã trả lời ngày 23 tháng 12 năm 2019 lúc 20:21Dec 23, 2019 at 20:21

Thêm điều này vào tập lệnh Python của bạn.

print['hello world']
7

Điều này thực thi lệnh đó như thể nó được gõ vào vỏ.

Dharman ♦

28.2K21 Huy hiệu vàng75 Huy hiệu bạc127 Huy hiệu đồng21 gold badges75 silver badges127 bronze badges

Đã trả lời ngày 14 tháng 8 năm 2020 lúc 3:23Aug 14, 2020 at 3:23

Đây là một ví dụ với thư viện

import python_2 as p2
print[p2.x]
5:

print['hello world']
8

Đã trả lời ngày 23 tháng 1 năm 2019 lúc 11:34Jan 23, 2019 at 11:34

1

Tôi tìm thấy

import python_2 as p2
print[p2.x]
1 Thư viện tiêu chuẩn thuận tiện nhất. Tại sao? Bạn phải xem xét trường hợp khi lỗi được nêu trong tập lệnh
hello world
what are you up to?
2 và với
import python_2 as p2
print[p2.x]
1, bạn có thể xử lý việc này trong mã
hello world
what are you up to?
5. Cả văn bản Traceback [để ghi lỗi trong tệp nhật ký để điều tra trong tương lai] và đối tượng lỗi [để xử lý lỗi tùy thuộc vào loại của nó]: Khi với thư viện
import python_2 as p2
print[p2.x]
5, tôi không thể quảng bá đối tượng lỗi từ
hello world
what are you up to?
2 đến
hello world
what are you up to?
5, chỉ đầu ra theo dõi. Ngoài ra, so sánh với giải pháp "Nhập Test1.py dưới dạng mô -đun",
import python_2 as p2
print[p2.x]
1 tốt hơn là vì bạn không cần phải gói mã
hello world
what are you up to?
2 vào hàm
x = 'hello world'
5.

Món mã như ví dụ, với mô -đun

x = 'hello world'
6 để nắm bắt văn bản lỗi cuối cùng:

print['hello world']
9

Đã trả lời ngày 14 tháng 4 lúc 12:26Apr 14 at 12:26

Một ví dụ để làm điều đó bằng cách sử dụng quy trình con.

x = 'hello world'
7

x = 'hello world'
8

x = 'hello world'
9

Đã trả lời ngày 27 tháng 5 năm 2021 lúc 6:50May 27, 2021 at 6:50

0

Theo ví dụ đã cho, đây là cách tốt nhất:

hello world
what are you up to?
0
hello world
what are you up to?
1

Nhưng theo tiêu đề, sử dụng

hello world
0 là cách tốt nhất như nhỏ và nó hoạt động. Điều này sẽ thực thi các tập tin được chỉ định. Phiên bản Python của tôi là 3.x +.

Đã trả lời ngày 1 tháng 3 lúc 15:47Mar 1 at 15:47

Làm thế nào để bạn gọi một tệp python từ Python?

Để chạy các tập lệnh Python bằng lệnh Python, bạn cần mở một dòng lệnh và nhập từ python, hoặc python3 nếu bạn có cả hai phiên bản, theo sau là đường dẫn đến tập lệnh của bạn, giống như thế này: $ python3 hello.py xin chào Thế giới! Nếu mọi thứ hoạt động ổn, sau khi bạn nhấn Enter, bạn sẽ thấy cụm từ Hello World!open a command-line and type in the word python , or python3 if you have both versions, followed by the path to your script, just like this: $ python3 hello.py Hello World! If everything works okay, after you press Enter , you'll see the phrase Hello World!

Làm cách nào để tham gia hai tệp Python?

Sau đây là các bước để hợp nhất ...
Mở tệp1.TXT và FILE2.txt trong chế độ đọc ..
Mở File3.TXT trong chế độ ghi ..
Đọc dữ liệu từ File1 và thêm nó vào một chuỗi ..
Đọc dữ liệu từ File2 và nối dữ liệu của tệp này đến chuỗi trước ..
Viết dữ liệu từ chuỗi đến File3 ..
Đóng tất cả các tệp ..

Làm cách nào để chạy một tệp python từ một tệp python khác với các đối số?

Giải pháp: Bốn bước sau đây sẽ giúp bạn chạy một python script.py với các đối số trong mã Python của bạn ...
Xác định tập lệnh tệp Python.py truy cập các đối số bằng SYS.....
Điền vào các sys biến.....
Tải tập lệnh tệp Python.py vào chuỗi Python.....
Chuyển chuỗi Python vào hàm EXEC [] tích hợp của Python ..

2 kịch bản Python có thể cùng một lúc không?

Có, bạn có thể chạy nhiều tập lệnh Python cùng một lúc và trong Python, chúng tôi sử dụng đa luồng để chạy nhiều tác phẩm đồng thời. and In python, we use multi-threading to run multiple works simultaneously.

Bài Viết Liên Quan

Chủ Đề