Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

fcntl और ioctl सिस्टम पायथन में कॉल करता है

फ़ाइलों और io को नियंत्रित करने के लिए, हमें fcntl . का उपयोग करना चाहिए मापांक। यह मूल रूप से fcntl() और ioctl() यूनिक्स रूटीन के लिए एक इंटरफ़ेस है।

इस मॉड्यूल की सभी विधियाँ एक पूर्णांक या io.IOBase फ़ाइल-डिस्क्रिप्टर को अपना पहला तर्क मानती हैं।

इस मॉड्यूल का उपयोग करने के लिए, हमें इसका उपयोग करके आयात करना चाहिए।

import fcntl

fcntl मॉड्यूल के कुछ मॉड्यूल हैं, ये हैं -

विधि fcntl.fcntl(fd, op[, arg])

फ़ाइल डिस्क्रिप्टर का उपयोग करके फ़ाइल पर ऑपरेशन करने के लिए इस विधि का उपयोग किया जाता है। ऑपरेशन op . द्वारा परिभाषित किया गया है . तीसरा तर्क वैकल्पिक है। यह या तो पूर्णांक प्रकार मान या स्ट्रिंग प्रकार मान हो सकता है। जब तर्क पूर्णांक प्रकार का होता है, तो वापसी मान C fcntl () कॉल का मान होगा। जब यह स्ट्रिंग है, तो यह बाइनरी संरचना का प्रतिनिधित्व करता है। जब यह फ़ंक्शन विफल हो जाता है, तो यह IOError उठाता है।

विधि fcntl.ioctl(fd, op[, arg[, mutate_flag]])

यह विधि fcntl() विधि के समान है, लेकिन इस मामले में तर्क प्रबंधन अधिक जटिल है। तर्क में, यदि परिवर्तनशील बफर पारित किया जाता है, तो उसका व्यवहार mutate_flag पर निर्भर करेगा। जब यह सत्य होता है, तो बफर परिवर्तनशील हो सकता है, अन्यथा यह केवल-पढ़ने के लिए बफर की तरह कार्य करेगा।

विधि fcntl.flock(fd, op)

इस विधि का उपयोग file_descriptor का उपयोग करके फ़ाइल पर लॉक ऑपरेशन करने के लिए किया जाता है। कुछ प्रणालियों पर, इस विधि का fcntl() विधि का उपयोग करके अनुकरण किया जा सकता है।

विधि fcntl.lockf(fd, Operation[, length[, start[, wherece]]])

इस विधि का उपयोग लॉकिंग कॉल के चारों ओर एक आवरण के रूप में करने के लिए किया जाता है। फ़ाइल को लॉक या अनलॉक करने के लिए ऑपरेशन तर्क पारित किया जाता है। संचालन के विभिन्न मूल्य हैं।

  • LOCK_UN - फाइल को अनलॉक करने के लिए

  • LOCK_SH - शेयर्ड लॉक

  • LOCK_EX - एक्सक्लूसिव लॉक

उदाहरण कोड

import fcntl, os, time
counter_file = 'my_counter.txt'
if not os.path.exists(counter_file):
   counter_file = open('my_counter.txt', 'w')
   counter_file.write('0') #Store 0 as starting number
   counter_file.close()
for i in range(15):
   counter_file = open('my_counter.txt', 'r+')
   fcntl.flock(counter_file.fileno(), fcntl.LOCK_EX)
   count = int(counter_file.readline()) + 1
   counter_file.seek(0)
   counter_file.write(str(count))
   counter_file.close()
   print('Process ID: ' + str(os.getpid()) + ', Count: ' + str(count))
   time.sleep(0.2)

आउटपुट

$ python3 example.py
Process ID: 12698, Count: 1
Process ID: 12698, Count: 2
Process ID: 12698, Count: 3
Process ID: 12698, Count: 4
Process ID: 12698, Count: 5
Process ID: 12698, Count: 6
Process ID: 12698, Count: 7
Process ID: 12698, Count: 8
Process ID: 12698, Count: 9
Process ID: 12698, Count: 10
Process ID: 12698, Count: 11
Process ID: 12698, Count: 12
Process ID: 12698, Count: 13
Process ID: 12698, Count: 14
Process ID: 12698, Count: 15
$
$
$ cat my_counter.txt
15
$

  1. पायथन पांडा - सीबोर्न के साथ एक काउंट प्लॉट बनाएं और बार को स्टाइल करें

    सीबॉर्न में काउंट प्लॉट का उपयोग बार का उपयोग करके प्रत्येक श्रेणीबद्ध बिन में टिप्पणियों की संख्या को प्रदर्शित करने के लिए किया जाता है। इसके लिए Seaborn.countplot() का इस्तेमाल किया जाता है। चेहरे के रंग . का उपयोग करके बार को स्टाइल करें , लाइनविड्थ और एजकलर पैरामीटर। मान लें कि CSV फ़ाइल के रू

  1. सबसे अधिक होने वाले चरित्र और उसकी गिनती को खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक इनपुट स्ट्रिंग को देखते हुए हमें सबसे अधिक होने वाले चरित्र और उसकी गिनती को खोजने की जरूरत है। दृष्टिकोण काउंटर पद्धति का उपयोग करके एक शब्दकोश बनाएं जिसमें स्ट्रिंग्स कुंजी के रूप में हों

  1. पायथन में =+ और +=क्या करते हैं?

    +=ऑपरेटर ऑब्जेक्ट के लिए सिंटैक्टिक शुगर है।__iadd__() फ़ंक्शन। पायथन डॉक्स से: इन विधियों को संवर्धित अंकगणितीय असाइनमेंट को लागू करने के लिए कहा जाता है (+=, -=, *=, @=, /=, //=, %=, **=, =, &=, ^=, |=). इन विधियों को ऑपरेशन को जगह में करने का प्रयास करना चाहिए (स्वयं को संशोधित करना) और परिणाम व