Kung paano suriin ang isang file ay binuksan o sarado sa Python

How Check File Is Opened



Ginagamit ang file upang permanenteng mag-imbak ng data. Ang pagtatrabaho sa isang file ay isang pangkaraniwang gawain ng anumang wika sa pagprograma. Maraming mga built-in na pag-andar na umiiral sa Python upang lumikha, magbukas, magbasa, magsulat at magsara ng file. Dalawang uri ng mga file ang maaaring malikha upang mag-imbak ng data. Ito ang mga text file at binary file. Anumang file ay kinakailangan upang buksan bago magbasa o magsulat. Ang buksan () Ang pagpapaandar ay ginagamit sa Python upang buksan ang isang file. Gamit ang buksan () Ang pagpapaandar ay isang paraan upang suriin ang isang partikular na file na binuksan o sarado. Kung ang buksan () bubukas ang pagpapaandar ng dati nang binuksan na file, pagkatapos ay isang IOError ay mabubuo. Ang isa pang paraan upang suriin ang isang file ay binuksan o sarado ay upang suriin ang mga halaga ng sarado pagmamay-ari ng file handler object. Gamit palitan ang pangalan () Ang pagpapaandar ay isa pang paraan upang suriin ang file ay binuksan o sarado. Ang iba't ibang mga paraan upang suriin ang anumang file ay binuksan o sarado sa Python ay ipinakita sa tutorial na ito.

Lumikha ng isang file para sa pagsuri:

Maaari mong gamitin ang anumang umiiral na file o lumikha ng isang bagong file upang subukan ang halimbawa ng code na ipinakita sa tutorial na ito. Isang bagong text file na pinangalanan kliyente.txt nilikha sa sumusunod na nilalaman upang magamit sa susunod na bahagi ng tutorial.







Email ng Pangalan ng ID
01 Jony Liver [protektado ng email]
02 Manik Hossain [protektado ng email]
03 Neha Akter [protektado ng email]
04 Janatul Ferdous [protektado ng email]
05 Helal Uddin [protektado ng email]



Halimbawa-1: Suriin ang file ay binuksan o hindi sa pamamagitan ng paggamit ng IOError

IOError bumubuo kapag ang bukas na () pagpapaandar ay tinawag upang buksan ang isang file na binuksan dati. Lumikha ng isang python file na may sumusunod na script upang suriin ang isang file na binuksan o hindi sa pamamagitan ng paggamit subukan-maliban harangan Dito, ang anumang umiiral na filename ay dadalhin bilang input at bubuksan para sa pagbabasa. Susunod, ang bukas na () pagpapaandar ay tinatawag na muli upang buksan ang parehong file na tataas ang isang IOError at mai-print ang mensahe ng error.



# Kunin ang filename upang suriin
filename = input('Ipasok ang anumang umiiral na filename: n')
# Buksan ang file sa kauna-unahang pagkakataon gamit ang bukas na () pagpapaandar
fileHandler = bukas(filename,'r')
# Subukang buksan muli ang file na parehong file
subukan:
may bukas('filename','r') bilangfile:
# I-print ang mensahe ng tagumpay
mag-print('Nagbukas ang file para mabasa.')
# Taasan ang error kung ang file ay binuksan dati
maliban sa IOError:
mag-print('Nagbukas na ang file.')

Output:

Lilitaw ang sumusunod na output pagkatapos ipatupad ang script sa itaas. Dito, kliyente.txt umiiral sa kasalukuyang lokasyon, at ang mensahe ng error, Nagbukas na ang file, ay nakalimbag para sa IOError pagbubukod





Halimbawa-2: Suriin ang file ay sarado o hindi sa pamamagitan ng paggamit ng saradong pag-aari.

Ang halaga ng sarado ang pag-aari ay magiging totoo kung ang anumang file ay sarado. Lumikha ng isang python file na may sumusunod na script upang suriin ang isang file na sarado o hindi na umiiral sa kasalukuyang lokasyon. Ang nakaraang script ng halimbawa ay bubuo ng isang error kung ang filename na kinuha mula sa gumagamit ay hindi umiiral sa kasalukuyang lokasyon. Ang problemang ito ay nalutas sa halimbawang ito. Ang ikaw Ginagamit ang module dito upang suriin ang pagkakaroon ng filename na kukuha mula sa gumagamit. Ang pagpapaandar ng check_closed () ay tinukoy upang suriin ang file ay sarado o hindi na tatawagin kung mayroon ang file.



# I-import ang os module upang suriin ang pagkakaroon ng file
angkat
# Tukuyin ang pag-andar suriin ang file ay sarado o hindi
def check_closed():
kungfileHandler.closed == Mali:
# I-print ang mensahe ng tagumpay
mag-print('Nagbukas ang file para mabasa.')
iba pa:
# I-print ang mensahe ng error
mag-print('Ang file ay sarado.')

# Kunin ang filename upang suriin
filename = input('Ipasok ang anumang umiiral na filename: n')
# Suriin ang file na mayroon o wala
kungos.path.exists(filename):
# Buksan ang file para sa pagbabasa
fileHandler = bukas(filename,'r')
# Tumawag sa pagpapaandar
check_closed()
iba pa:
# I-print ang mensahe kung ang file ay walang
mag-print('Walang file.')

Output:

Lilitaw ang sumusunod na output pagkatapos ipatupad ang script sa itaas. Dito, kliyente.txt umiiral sa kasalukuyang lokasyon, at ang mensahe ng tagumpay, Nagbukas ang file para mabasa, ay naka-print dahil ang halaga ng saradong pag-aari ay bumalik Mali .

Halimbawa-3: Suriin ang file ay binuksan o hindi sa pamamagitan ng paggamit ng OSError

Ang OSError bumubuo kapag ang pangalan ng () pagpapaandar ay tinatawag na higit sa isang beses para sa isang file na binuksan na. Lumikha ng isang python file na may sumusunod na script upang suriin ang isang file na binuksan o sarado sa pamamagitan ng paggamit OSError . Ginamit ang module ng os sa script upang suriin ang pagkakaroon ng file at palitan ang pangalan ng file. Kapag ang palitan ang pangalan () Ang pagpapaandar ay tinatawag sa pangalawang pagkakataon, mabubuo ang OSError, at mai-print ang pasadyang mensahe ng error.

# I-import ang os module upang suriin ang pagkakaroon ng file
angkat
# Itakda ang mayroon nang filename
filename ='kliyente.txt'
# Itakda ang bagong filename
newname ='mga customer.txt'
# Suriin ang file na mayroon o wala
kungos.path.exists(filename):
subukan:
# Tawagin ang muling pangalan ng pagpapaandar sa unang pagkakataon
os.rename(filename, bagong pangalan)
# Tawagin ang muling pangalan ng pagpapaandar sa pangalawang pagkakataon
os.rename(filename, bagong pangalan)
# Taasan ang error kung nagbukas ang file
maliban sa OSError:
mag-print('Ang file ay binubuksan pa rin.')

iba pa:
# I-print ang mensahe kung ang file ay walang
mag-print('Walang file.')

Output:

Lilitaw ang sumusunod na output pagkatapos ipatupad ang script sa itaas. Dito, kliyente.txt umiiral sa kasalukuyang lokasyon, at ang mensahe ng error, Ang file ay binubuksan pa rin, ay nakalimbag sapagkat ang OSError ang pagbubukod ay nabuo kapag ang pangalawa palitan ang pangalan () ang pagpapaandar ay naisakatuparan.

Konklusyon:

Kapag kailangan naming gumana kasama ang parehong file nang maraming beses sa isang script, mahalaga na malaman kung ang file ay binuksan o sarado. Mas mahusay na tawagan ang function na malapit () upang isara ang file pagkatapos makumpleto ang pagpapatakbo ng file. Nagaganap ang error kapag ang isang file ay bubuksan sa pangalawang pagkakataon sa parehong script nang hindi ito isinasara. Ang iba't ibang mga solusyon sa problemang ito ay ipinakita sa tutorial na ito sa pamamagitan ng paggamit ng mga simpleng halimbawa upang matulungan ang mga gumagamit ng sawa.