python - पर्यावरण चर सेट करना/पढ़ना




environment-variables (3)

संभावित डुप्लिकेट:
पायथन में पर्यावरण चर सेट करने के लिए कैसे

मेरी पायथन लिपि जो कई पायथन कार्यों और खोल स्क्रिप्ट को बुलाती है। मैं पाइथन (मुख्य कॉलिंग फ़ंक्शन) में पर्यावरण चर सेट करना चाहता हूं और पर्यावरण चर सेट देखने के लिए शैल स्क्रिप्ट सहित सभी बेटी प्रक्रियाएं सेट करना चाहता हूं।

मुझे इस तरह के कुछ पर्यावरण चर सेट करने की जरूरत है:

DEBUSSY 1
FSDB 1

1 एक संख्या है, एक स्ट्रिंग नहीं। इसके अतिरिक्त, मैं पर्यावरण चर में संग्रहीत मूल्य को कैसे पढ़ सकता हूं? ( DEBUSSY / DEBUSSY तरह एक और अजगर बाल लिपि में।)


पहली चीजें पहले :) पुस्तकें पढ़ने समस्या हल करने के लिए एक उत्कृष्ट दृष्टिकोण है; बैंड-एड्स फिक्स और समस्याओं को हल करने में दीर्घकालिक निवेश के बीच यह अंतर है। सीखने का मौका कभी न चूकें। : डी

आप 1 को एक संख्या के रूप में समझना चुन सकते हैं , लेकिन पर्यावरण चर की परवाह नहीं है। वे सिर्फ तारों के चारों ओर गुजरते हैं:

   The argument envp is an array of character pointers to null-
   terminated strings. These strings shall constitute the
   environment for the new process image. The envp array is
   terminated by a null pointer.

( environ(3posix) ।)

os.environ शब्दकोश-जैसी वस्तु का उपयोग करके आप पाइथन में पर्यावरण चर का उपयोग करते हैं:

>>> import os
>>> os.environ["HOME"]
'/home/sarnold'
>>> os.environ["PATH"]
'/home/sarnold/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
>>> os.environ["PATH"] = os.environ["PATH"] + ":/silly/"
>>> os.environ["PATH"]
'/home/sarnold/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/silly/'

यदि आप वैश्विक स्क्रिप्ट को नई स्क्रिप्ट में पास करना चाहते हैं, तो आप एक पायथन फ़ाइल बना सकते हैं जो केवल वैश्विक चर (जैसे globals.py) रखने के लिए है। जब आप इस फ़ाइल को बाल स्क्रिप्ट के शीर्ष पर आयात करते हैं, तो उसे उन सभी चरों तक पहुंच प्राप्त होनी चाहिए।

यदि आप इन चरों को लिख रहे हैं, तो यह एक अलग कहानी है। इसमें समरूपता शामिल है और चर को लॉक कर रहा है, जिसे मैं तब तक नहीं प्राप्त कर रहा हूं जब तक आप चाहें।


os मॉड्यूल का उपयोग करने का प्रयास करें।

import os

os.environ['DEBUSSY'] = '1'
os.environ['FSDB'] = '1'

# Open child processes via os.system(), popen() or fork() and execv()

someVariable = int(os.environ['DEBUSSY'])

os.environ पर पायथन दस्तावेज़ देखें। इसके अलावा, बाल प्रक्रियाओं को बढ़ाने के लिए, पाइथन के उपप्रोसेस दस्तावेज़ देखें







environment-variables