अजगर | os.fchmod () विधि

|

यूनिक्स जैसे सिस्टम पर, मोड — ये फ़ाइल सिस्टम अनुमतियाँ हैं जो उपयोगकर्ताओं, समूहों और अन्य वर्गों को फ़ाइल तक पहुँचने के लिए दी गई हैं।
os.fchmod() में पायथन का उपयोग निर्दिष्ट फ़ाइल डिस्क्रिप्टर द्वारा निर्दिष्ट फ़ाइल मोड को निर्दिष्ट संख्यात्मक मोड में बदलने के लिए किया जाता है। यह विधि os.chmod (fd, mode) के बराबर है।

नोट। यह विधि केवल यूनिक्स प्लेटफॉर्म पर उपलब्ध है।

वाक्यविन्यास: os.fchmod (fd, मोड)

पैरामीटर:
fd: एक फाइल डिस्क्रिप्टर जिसका मोड सेट किया जाना है।
मोड: सेट किए जाने वाले मोड का प्रतिनिधित्व करने वाला एक संख्यात्मक मान।
मोड निम्न में से कोई एक मान या बिटवाइज़ ORed संयोजन भी ले सकता है:

  • stat.S_ISUID: सेट करें निष्पादन पर उपयोगकर्ता आईडी
  • stat.S_ISGID: निष्पादन पर समूह आईडी सेट करें
  • stat.S_ENFMT: रिकॉर्ड लॉकिंग लागू li>
  • stat.S_ISVTX: निष्पादन के बाद टेक्स्ट इमेज सेव करें
  • stat.S_IREAD: स्वामी द्वारा पढ़ें।
  • stat.S_IWRITE: स्वामी द्वारा लिखें।
  • stat.S_IEXEC: स्वामी द्वारा निष्पादित करें।
  • stat.S_IRWXU: पढ़ें, लिखें, और स्वामी द्वारा निष्पादित करें
  • stat.S_IRUSR: स्वामी द्वारा पढ़ें li>
  • stat.S_IWUSR: स्वामी द्वारा लिखें।
  • stat.S_IXUSR: स्वामी द्वारा निष्पादित करें।
  • stat.S_IRWXG: समूह द्वारा पढ़ें, लिखें और निष्पादित करें
  • stat.S_IRGRP: समूह द्वारा पढ़ें
  • stat.S_IWGRP: समूह द्वारा लिखें
  • stat.S_IXGRP: समूह द्वारा निष्पादित करें
  • stat .S_IRWXO: दूसरों के द्वारा पढ़ें, लिखें और निष्पादित करें।
  • stat.S_IROTH: दूसरों के द्वारा पढ़ें
  • stat.S_IWOTH: दूसरों के द्वारा लिखें
  • < मजबूत>stat.S_IXOTH: दूसरों द्वारा निष्पादित

वापसी का प्रकार: यह विधि कोई मान नहीं लौटाती है।

कोड: os विधि का उपयोग कर .fchmod ()


# os.fchmod को समझाने के लिए पायथन प्रोग्राम () विधि परिभाषाएँ


# os मॉड्यूल का आयात

आयात <कोड वर्ग = "सादा"> ओएस


<कोड वर्ग = "टिप्पणियां"> # सांख्यिकी मॉड्यूल का आयात

<कोड वर्ग = "कीवर्ड"> आयात <कोड वर्ग = "सादा"> स्टेट

<कोड वर्ग = "अपरिभाषित रिक्त स्थान"> br> # Filename

filename = < कोड वर्ग = "स्ट्रिंग"> "file.txt"


<कोड वर्ग = "टिप्पणियां" > # निर्दिष्ट फ़ाइल खोलें और
# फ़ाइल डिस्क्रिप्टर प्राप्त करें
# इससे संबंधित < br> # os.open () मेथड

<कोड वर्ग = "सादा"> fd <कोड वर्ग = "कीवर्ड"> = <कोड वर्ग = "सादा"> os. open (filename, os.O_RDWR)



< कोड वर्ग = "टिप्पणियां"> # वर्तमान संख्यात्मक मोड प्रिंट करें
# (ऑक्टल) फ़ाइल

मोड <कोड वर्ग = "कीवर्ड"> = <कोड वर्ग = "कार्य"> अक्टूबर <कोड वर्ग = "सादा"> (os.stat (एफडी) .st_mode ) [ - 3 :]

Print ( "फाइल का वर्तमान न्यूमेरिक मोड (ऑक्टल नोटेशन):" , mode)



# अब मोड बदलें < br> File #


# Octal 777 as mode value
# पढ़ने, लिखने और अनुमति निष्पादित करने की अनुमति
<कोड वर्ग = "टिप्पणियां" > # f या मालिक, समूह और अन्य

मोड = 0o777

os.fchmod (fd, mode)

Print < / कोड> <कोड वर्ग = "सादा"> ( <कोड वर्ग = "स्ट्रिंग"> "फ़ाइल मोड सफलतापूर्वक बदल गया" <कोड वर्ग = "सादा">)


<कोड वर्ग = "टिप्पणियां"> # प्रिंट संख्यात्मक मोड बदल गया है ><कोड वर्ग ="सादा "> मोड <कोड वर्ग ="कीवर्ड"> = <कोड वर्ग ="कार्य"> अक्टूबर <कोड वर्ग ="सादा"> (ओएस .stat (fd) .st_mode) [
- 3 :]

Print ( "वर्तमान न्यूमेरिक मोड ऑफ़ द फ़ाइल (अष्टक संकेतन):" , mode)


# मोड पैरामीटर <कोड> भी हो सकता है /code>
#
# Stat मॉड्यूल

< br><कोड वर्ग = "टिप्पणियां"> # परिवर्तन मोड

कोड वर्ग = "सादा"> मोड <कोड वर्ग = "कीवर्ड"> = stat.S_IRWXU

os.fchmod (fd, mode)

< कोड वर्ग = "फ़ंक्शंस"> प्रिंट <कोड वर्ग = "सादा"> ( <कोड वर्ग = "स्ट्रिंग"> "फ़ाइल मोड सफलतापूर्वक बदल गया" <कोड वर्ग = "सादा" >)

Print ( "अब, फ़ाइल को केवल स्वामी द्वारा पढ़ा, लिखा और निष्पादित किया जा सकता है " )


# मॉडिफाइड न्यूमेरिक मोड प्रिंट करें <कोड वर्ग = "टिप्पणियां"> # (ऑक्टल) फ़ाइल

<कोड वर्ग = "सादा"> मोड <कोड वर्ग = "कीवर्ड"> = oct (os.stat (fd) .st_mode) [ - कोड> <कोड वर्ग = "मान"> 3 <कोड वर्ग = "सादा">:]

<कोड वर्ग = "कार्य"> प्रिंट < कोड वर्ग = "सादा"> ( <कोड वर्ग = "स्ट्रिंग"> "फ़ाइल का वर्तमान संख्यात्मक मोड (अष्टक संकेतन):" <कोड वर्ग = "सादा">, मोड) कोड>



<कोड वर्ग = "सादा"> मोड <कोड वर्ग = "कीवर्ड"> = <कोड वर्ग = "सादा"> stat.S_IRWXU | stat.S_IRGRP

os.fchmod (fd, mode)

Print <कोड वर्ग = "सादा"> ( <कोड वर्ग = "स्ट्रिंग"> "फ़ाइल मोड सफलतापूर्वक बदल गया" <कोड वर्ग = "सादा">) p>

Print ("अब, File पढ़ा, लिखा जा सकता है और निष्पादित

स्वामी द्वारा लेकिन समूह द्वारा पढ़ा जा सकता है ")


# संशोधित संख्यात्मक मोड प्रिंट करें
# (octal) फ़ाइल

मोड < कोड वर्ग = "कीवर्ड"> = <कोड वर्ग = "कार्य"> अक्टूबर <कोड वर्ग = "सादा"> (os.stat (एफडी) .st_mode) [ <कोड क्लास = "कीवर्ड"> - <कोड क्लास = "वैल्यू"> 3 <कोड क्लास = "सादा">:]

कोड वर्ग = "कार्य"> पी रिंट <कोड वर्ग = "सादा"> ( <कोड वर्ग = " string"> "फ़ाइल का वर्तमान संख्यात्मक मोड (ऑक्टल नोटेशन):" , mode)



# फाइल डिस्क्रिप्टर को बंद करें
os.close (fd)

tbody>

बाहर निकलें:

 फ़ाइल का वर्तमान सांख्यिक मोड (ऑक्टल नोटेशन): 666 फ़ाइल मोड सफलतापूर्वक बदला गया फ़ाइल का वर्तमान संख्यात्मक मोड फ़ाइल (ऑक्टल नोटेशन): 777 फ़ाइल मोड सफलतापूर्वक बदल गया अब, फ़ाइल को केवल स्वामी द्वारा पढ़ा, लिखा और निष्पादित किया जा सकता है फ़ाइल का वर्तमान संख्यात्मक मोड (ऑक्टल नोटेशन): 700 फ़ाइल मोड सफलतापूर्वक बदल गया अब, फ़ाइल को पढ़ा, लिखा और निष्पादित किया जा सकता है मालिक द्वारा लेकिन समूह द्वारा पढ़ा जा सकता है फ़ाइल का वर्तमान संख्यात्मक मोड (ऑक्टल नोटेशन): 740