పైథాన్‌లో ఫైల్ తెరవబడిందో లేదా మూసివేయబడిందో తనిఖీ చేయడం ఎలా

How Check File Is Opened



డేటాను శాశ్వతంగా నిల్వ చేయడానికి ఫైల్ ఉపయోగించబడుతుంది. ఏదైనా ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో ఫైల్‌తో పనిచేయడం చాలా సాధారణ పని. ఫైల్‌ను సృష్టించడానికి, తెరవడానికి, చదవడానికి, వ్రాయడానికి మరియు మూసివేయడానికి పైథాన్‌లో అనేక అంతర్నిర్మిత విధులు ఉన్నాయి. డేటాను నిల్వ చేయడానికి రెండు రకాల ఫైల్‌లను సృష్టించవచ్చు. ఇవి టెక్స్ట్ ఫైల్స్ మరియు బైనరీ ఫైల్స్. ఏదైనా ఫైల్ చదవడానికి లేదా వ్రాయడానికి ముందు తెరవాలి. ది తెరువు () ఫైల్‌ను తెరవడానికి పైథాన్‌లో ఫంక్షన్ ఉపయోగించబడుతుంది. ఉపయోగించి తెరువు () ఫంక్షన్ అనేది ఒక నిర్దిష్ట ఫైల్ తెరవబడిందా లేదా మూసివేయబడిందో తనిఖీ చేయడానికి ఒక మార్గం. ఒకవేళ తెరువు () ఫంక్షన్ గతంలో తెరిచిన ఫైల్‌ను తెరుస్తుంది, తరువాత ఒక IOError జనరేట్ అవుతుంది. ఫైల్ తెరవబడిందో లేదా మూసివేయబడిందో తనిఖీ చేయడానికి మరొక మార్గం విలువలను తనిఖీ చేయడం మూసివేయబడింది ఫైల్ హ్యాండ్లర్ వస్తువు యొక్క ఆస్తి. ఉపయోగించి పేరు మార్చండి () ఫైల్ తెరవబడిందా లేదా మూసివేయబడిందా అని తనిఖీ చేయడానికి ఫంక్షన్ మరొక మార్గం. పైథాన్‌లో ఏదైనా ఫైల్ తెరవబడిందా లేదా మూసివేయబడిందో తనిఖీ చేయడానికి వివిధ మార్గాలు ఈ ట్యుటోరియల్‌లో చూపబడ్డాయి.

తనిఖీ కోసం ఒక ఫైల్‌ను సృష్టించండి:

ఈ ట్యుటోరియల్‌లో చూపిన ఉదాహరణ కోడ్‌ని పరీక్షించడానికి మీరు ఇప్పటికే ఉన్న ఏదైనా ఫైల్‌ని ఉపయోగించవచ్చు లేదా కొత్త ఫైల్‌ను సృష్టించవచ్చు. పేరు పెట్టబడిన కొత్త టెక్స్ట్ ఫైల్ clients.txt ట్యుటోరియల్ యొక్క తదుపరి భాగంలో తరువాత ఉపయోగించడానికి కింది కంటెంట్‌తో సృష్టించబడింది.







ID పేరు ఇమెయిల్
01 జోనీ కాలేయం [ఇమెయిల్ రక్షించబడింది]
02 మాణిక్ హుస్సేన్ [ఇమెయిల్ రక్షించబడింది]
03 నేహా అక్టర్ [ఇమెయిల్ రక్షించబడింది]
04 జనతుల్ ఫెర్డౌస్ [ఇమెయిల్ రక్షించబడింది]
05 హేలాల్ ఉద్దీన్ [ఇమెయిల్ రక్షించబడింది]



ఉదాహరణ -1: IOError ఉపయోగించి ఫైల్ తెరవబడిందో లేదో తనిఖీ చేయండి

IOError ఇంతకు ముందు తెరిచిన ఫైల్‌ని తెరవడానికి ఓపెన్ () ఫంక్షన్‌ను పిలిచినప్పుడు ఉత్పత్తి చేస్తుంది. ఒక ఫైల్ తెరవబడిందో లేదో తనిఖీ చేయడం ద్వారా కింది స్క్రిప్ట్‌తో పైథాన్ ఫైల్‌ని సృష్టించండి ప్రయత్నించండి-తప్ప బ్లాక్. ఇక్కడ, ఇప్పటికే ఉన్న ఏదైనా ఫైల్ పేరు ఇన్‌పుట్‌గా తీసుకోబడుతుంది మరియు చదవడానికి తెరవబడుతుంది. తరువాత, ఓపెన్ () ఫంక్షన్ మళ్లీ అదే IOError ని లేపడానికి మరియు దోష సందేశాన్ని ముద్రించడానికి అదే ఫైల్‌ను తెరవడానికి పిలువబడుతుంది.



# తనిఖీ చేయడానికి ఫైల్ పేరు తీసుకోండి
ఫైల్ పేరు = ఇన్‌పుట్('ఇప్పటికే ఉన్న ఏదైనా ఫైల్ పేరును నమోదు చేయండి: n')
# ఓపెన్ () ఫంక్షన్ ఉపయోగించి మొదటిసారి ఫైల్‌ను తెరవండి
fileHandler = తెరవండి(ఫైల్ పేరు,'r')
# ఫైల్‌ని మళ్లీ తెరవడానికి ప్రయత్నించండి
ప్రయత్నించండి:
ఓపెన్ తో('ఫైల్ పేరు','r') గాఫైల్:
# విజయ సందేశాన్ని ముద్రించండి
ముద్రణ('పఠనం కోసం ఫైల్ తెరవబడింది.')
# ఫైల్ ముందు తెరిస్తే లోపం పెంచండి
IOError తప్ప:
ముద్రణ('ఫైల్ ఇప్పటికే తెరవబడింది.')

అవుట్‌పుట్:

పై స్క్రిప్ట్‌ను అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది. ఇక్కడ, clients.txt ప్రస్తుత ప్రదేశంలో ఉంది, మరియు దోష సందేశం, ఫైల్ ఇప్పటికే తెరవబడింది, కోసం ముద్రించబడింది IOError మినహాయింపు.





ఉదాహరణ -2: మూసివేసిన ఆస్తిని ఉపయోగించి ఫైల్ మూసివేయబడిందా లేదా అని తనిఖీ చేయండి.

యొక్క విలువ మూసివేయబడింది ఏదైనా ఫైల్ మూసివేయబడితే ఆస్తి నిజం అవుతుంది. ఒక ఫైల్ మూసివేయబడిందా లేదా ప్రస్తుత ప్రదేశంలో ఉందో లేదో తనిఖీ చేయడానికి క్రింది స్క్రిప్ట్‌తో ఒక పైథాన్ ఫైల్‌ను సృష్టించండి. వినియోగదారు నుండి తీసుకున్న ఫైల్ పేరు ప్రస్తుత ప్రదేశంలో లేనట్లయితే మునుపటి ఉదాహరణ స్క్రిప్ట్ లోపాన్ని సృష్టిస్తుంది. ఈ సమస్య ఈ ఉదాహరణలో పరిష్కరించబడింది. ది మీరు మాడ్యూల్ యూజర్ నుండి తీసుకోబడిన ఫైల్ పేరు ఉనికిని తనిఖీ చేయడానికి ఇక్కడ ఉపయోగించబడుతుంది. చెక్_క్లోజ్డ్ () ఫంక్షన్ ఫైల్ మూసివేయబడిందో లేదో తనిఖీ చేయడానికి నిర్వచించబడింది లేదా ఫైల్ ఉందో లేదో అని పిలవబడుతుంది.



# ఫైల్ ఉనికిని తనిఖీ చేయడానికి OS మాడ్యూల్‌ని దిగుమతి చేయండి
దిగుమతి
# Drfine ఫంక్షన్ ఫైల్ మూసివేయబడిందా లేదా అని తనిఖీ చేయండి
def తనిఖీ_ మూసివేయబడింది():
ఉంటేfileHandler.closed == తప్పుడు:
# విజయ సందేశాన్ని ముద్రించండి
ముద్రణ('పఠనం కోసం ఫైల్ తెరవబడింది.')
లేకపోతే:
# దోష సందేశాన్ని ముద్రించండి
ముద్రణ('ఫైల్ మూసివేయబడింది.')

# తనిఖీ చేయడానికి ఫైల్ పేరు తీసుకోండి
ఫైల్ పేరు = ఇన్‌పుట్('ఇప్పటికే ఉన్న ఏదైనా ఫైల్ పేరును నమోదు చేయండి: n')
# ఫైల్ ఉందో లేదో తనిఖీ చేయండి
ఉంటేos.path.exists(ఫైల్ పేరు):
# చదవడానికి ఫైల్‌ని తెరవండి
fileHandler = తెరవండి(ఫైల్ పేరు,'r')
# ఫంక్షన్‌కు కాల్ చేయండి
తనిఖీ_ మూసివేయబడింది()
లేకపోతే:
# ఫైల్ లేకపోతే సందేశాన్ని ముద్రించండి
ముద్రణ('ఫైల్ ఉనికిలో లేదు.')

అవుట్‌పుట్:

పై స్క్రిప్ట్‌ను అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది. ఇక్కడ, clients.txt ప్రస్తుత ప్రదేశంలో ఉంది, మరియు విజయ సందేశం, పఠనం కోసం ఫైల్ తెరవబడింది, మూసివేయబడిన ఆస్తి విలువ తిరిగి ఇవ్వబడినందున ముద్రించబడింది తప్పుడు .

ఉదాహరణ -3: OSError ఉపయోగించి ఫైల్ తెరవబడిందో లేదో తనిఖీ చేయండి

ది OSError ఇప్పటికే తెరిచిన ఫైల్ కోసం పేరు () ఫంక్షన్‌ను ఒకటి కంటే ఎక్కువసార్లు పిలిచినప్పుడు ఉత్పత్తి చేస్తుంది. ఫైల్‌ని తెరవడం లేదా మూసివేయడం ద్వారా తనిఖీ చేయడానికి క్రింది స్క్రిప్ట్‌తో పైథాన్ ఫైల్‌ని సృష్టించండి OSError . ఫైల్ ఉనికిని తనిఖీ చేయడానికి మరియు ఫైల్ పేరును మార్చడానికి స్క్రిప్ట్‌లో OS మాడ్యూల్ ఉపయోగించబడింది. ఎప్పుడు అయితే పేరు మార్చండి () ఫంక్షన్ రెండవ సారి పిలువబడుతుంది, OSError రూపొందించబడుతుంది మరియు అనుకూల దోష సందేశం ముద్రించబడుతుంది.

# ఫైల్ ఉనికిని తనిఖీ చేయడానికి OS మాడ్యూల్‌ని దిగుమతి చేయండి
దిగుమతి
# ఇప్పటికే ఉన్న ఫైల్ పేరును సెట్ చేయండి
ఫైల్ పేరు ='clients.txt'
# కొత్త ఫైల్ పేరు సెట్ చేయండి
కొత్త పేరు ='customers.txt'
# ఫైల్ ఉందో లేదో తనిఖీ చేయండి
ఉంటేos.path.exists(ఫైల్ పేరు):
ప్రయత్నించండి:
# రీనేమ్ ఫంక్షన్‌కు మొదటిసారి కాల్ చేయండి
os.పేరు(ఫైల్ పేరు, కొత్త పేరు)
# రెండోసారి పేరుమార్చే ఫంక్షన్‌కు కాల్ చేయండి
os.పేరు(ఫైల్ పేరు, కొత్త పేరు)
# ఫైల్ తెరిచినట్లయితే లోపం పెంచండి
OSError తప్ప:
ముద్రణ('ఫైల్ ఇంకా తెరవబడింది.')

లేకపోతే:
# ఫైల్ లేకపోతే సందేశాన్ని ముద్రించండి
ముద్రణ('ఫైల్ ఉనికిలో లేదు.')

అవుట్‌పుట్:

పై స్క్రిప్ట్‌ను అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది. ఇక్కడ, clients.txt ప్రస్తుత ప్రదేశంలో ఉంది, మరియు దోష సందేశం, ఫైల్ ఇంకా తెరవబడింది, ప్రింట్ చేయబడింది ఎందుకంటే OSError రెండవది ఉన్నప్పుడు మినహాయింపు సృష్టించబడింది పేరు మార్చండి () ఫంక్షన్ అమలు చేయబడింది.

ముగింపు:

మేము స్క్రిప్ట్‌లో ఒకే ఫైల్‌తో అనేకసార్లు పని చేయాల్సి వచ్చినప్పుడు, ఫైల్ తెరవబడిందా లేదా మూసివేయబడిందా అని తెలుసుకోవడం చాలా అవసరం. ఫైల్ ఆపరేషన్ పూర్తయిన తర్వాత ఫైల్‌ను క్లోజ్ చేయడానికి క్లోజ్ () ఫంక్షన్‌కు కాల్ చేయడం మంచిది. ఫైల్‌ను మూసివేయకుండా అదే స్క్రిప్ట్‌లో రెండవ సారి తెరవబడినప్పుడు లోపం ఏర్పడుతుంది. పైథాన్ వినియోగదారులకు సహాయం చేయడానికి సాధారణ ఉదాహరణలను ఉపయోగించడం ద్వారా ఈ సమస్యకు వివిధ పరిష్కారాలు ఈ ట్యుటోరియల్‌లో చూపబడ్డాయి.