Hướng dẫn how do i pass information from one python script to another? - làm cách nào để chuyển thông tin từ tập lệnh python này sang tập lệnh python khác?

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

Tôi chắc chắn điều này rất đơn giản nhưng tôi đã không thể làm cho nó hoạt động chính xác. Tôi cần phải có tập lệnh python chính của mình gọi một tập lệnh python khác và chuyển các biến từ tập lệnh gốc sang tập lệnh mà tôi đã gọi

Vì vậy, trong một ví dụ đơn giản, tập lệnh đầu tiên của tôi là,

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

Và kịch bản thứ hai của tôi là,

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

Và tôi mong đợi nó sẽ in X nhưng tôi nhận được

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

Tôi không chắc là nhập khẩu là cách đúng để đạt được điều này, nhưng nếu ai đó có thể làm sáng tỏ nó một cách đơn giản sẽ rất tuyệt!

thanks,

CHỈNH SỬA

Sau khi đọc các bình luận, tôi nghĩ rằng tôi sẽ mở rộng câu hỏi của mình. Aswin Murugesh trả lời khắc phục vấn đề nhập khẩu mà tôi đang gặp phải, tuy nhiên giải pháp không có kết quả mong muốn vì tôi dường như không thể vượt qua các mục trong danh sách theo cách này.

Trong First.py tôi có một danh sách mà tôi xử lý như sau

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

Tôi muốn chuyển từng mục trong danh sách cho tệp Python thứ hai để xử lý thêm [lần đầu tiên tôi không muốn làm điều này trong đầu tiên. chương trình. Tôi hy vọng điều này bây giờ có ý nghĩa hơn.

Cảm ơn các ý kiến ​​cho đến nay.

Làm cách nào để chuyển dữ liệu từ tập lệnh này sang tập lệnh khác?

Về cơ bản, bạn có hai tùy chọn: biến biến thành một biến môi trường [xuất thử nghiệm] trước khi thực thi tập lệnh thứ 2.Nguồn kịch bản thứ 2, tức là.test2.sh và nó sẽ chạy trong cùng một vỏ.Make the variable an environment variable [ export TESTVARIABLE ] before executing the 2nd script. Source the 2nd script, i.e. . test2.sh and it will run in the same shell.

Làm cách nào để chuyển các đối số từ kịch bản Python này sang kịch bản khác?

Cách đơn giản nhất là chỉ cần làm cho SubProcess1.py chấp nhận một đối số duy nhất trên stdin, sau đó chỉ cần chuyển đối số như một bổ sung cho danh sách các đối số trong quy trình con.call.Nếu bạn muốn thực sự lấy lại bất cứ thứ gì, bạn sẽ cần sử dụng quy trình con.Check_output và phân tích đầu ra.make subprocess1.py accept a single argument on stdin, then simply pass the argument as an addition to the list of arguments in subprocess. call. If you want to actually get anything back you'll need to use subprocess. check_output and parse the output.

Chủ Đề