Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Använda Kontextadministratörer för Filhantering i Python | Behärska Filhantering i Python
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Python Strukturell Programmering

bookAnvända Kontextadministratörer för Filhantering i Python

Python är ett robust språk som optimerar många operationer, inklusive resurs­hantering. Om du till exempel öppnar en fil och glömmer att stänga den, kommer Python automatiskt att stänga den när programmet avslutas. Att förlita sig på denna funktion är dock inte bästa praxis. För att säkerställa att resurser hanteras explicit och korrekt tillhandahåller Python en mekanism som kallas with-satsen.

with-satsen för filhantering

with-satsen förenklar hanteringen av resurser såsom filer genom att automatisera upprättande och nedmontering. Här är ett enkelt exempel:

with open("greetings.txt", "r") as file:
    print(file.read())

Denna användning av with-satsen säkerställer att filen stängs korrekt efter att dess innehåll har lästs, oavsett om några undantag uppstår under läsningen. Detta motsvarar att använda ett try-finally-block:

file = open("greetings.txt", "r")
try:
    print(file.read())
finally:
    file.close()

Hantering av undantag med kontext­hanterare

En av de viktigaste fördelarna med att använda with-satsen är dess förmåga att hantera oväntade fel som kan uppstå vid filoperationer. Överväg följande scenario:

Utan 'with'-satsen:

file = open("greetings.txt", "r")
1//0
print(file.read())
file.close()

På grund av ett fel som inträffar före anropet till file.close() förblev filen öppen.

file.closed # False

Notera

Attributet file.closed indikerar om filen är stängd eller inte.

Med:

file = open("greetings.txt", "r")
try:
    1//0  # This will raise a ZeroDivisionError
    print(file.read())
finally:
    file.close()
print(file.closed)  # Output: True

Med 'with'-satsen:

with open("greetings.txt", "r") as file:
    1//0  # Even though an error occurs, the file is still closed
    print(file.read())
print(file.closed)  # Output: True

I båda exemplen stängs filen trots att ett fel uppstår. Dock gör with-satsen koden renare och mer lättläst, och säkerställer att alla resurser frigörs även om ett fel avbryter programmets körning.

Notera

Det är viktigt att notera att kontext­hanterare inte är begränsade till filhantering. De kan användas med alla resurser som behöver upprättas och städas upp på ett tillförlitligt sätt, såsom nätverksanslutningar eller databassessioner.

question mark

Hur stänger man en fil i Python?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

bookAnvända Kontextadministratörer för Filhantering i Python

Svep för att visa menyn

Python är ett robust språk som optimerar många operationer, inklusive resurs­hantering. Om du till exempel öppnar en fil och glömmer att stänga den, kommer Python automatiskt att stänga den när programmet avslutas. Att förlita sig på denna funktion är dock inte bästa praxis. För att säkerställa att resurser hanteras explicit och korrekt tillhandahåller Python en mekanism som kallas with-satsen.

with-satsen för filhantering

with-satsen förenklar hanteringen av resurser såsom filer genom att automatisera upprättande och nedmontering. Här är ett enkelt exempel:

with open("greetings.txt", "r") as file:
    print(file.read())

Denna användning av with-satsen säkerställer att filen stängs korrekt efter att dess innehåll har lästs, oavsett om några undantag uppstår under läsningen. Detta motsvarar att använda ett try-finally-block:

file = open("greetings.txt", "r")
try:
    print(file.read())
finally:
    file.close()

Hantering av undantag med kontext­hanterare

En av de viktigaste fördelarna med att använda with-satsen är dess förmåga att hantera oväntade fel som kan uppstå vid filoperationer. Överväg följande scenario:

Utan 'with'-satsen:

file = open("greetings.txt", "r")
1//0
print(file.read())
file.close()

På grund av ett fel som inträffar före anropet till file.close() förblev filen öppen.

file.closed # False

Notera

Attributet file.closed indikerar om filen är stängd eller inte.

Med:

file = open("greetings.txt", "r")
try:
    1//0  # This will raise a ZeroDivisionError
    print(file.read())
finally:
    file.close()
print(file.closed)  # Output: True

Med 'with'-satsen:

with open("greetings.txt", "r") as file:
    1//0  # Even though an error occurs, the file is still closed
    print(file.read())
print(file.closed)  # Output: True

I båda exemplen stängs filen trots att ett fel uppstår. Dock gör with-satsen koden renare och mer lättläst, och säkerställer att alla resurser frigörs även om ett fel avbryter programmets körning.

Notera

Det är viktigt att notera att kontext­hanterare inte är begränsade till filhantering. De kan användas med alla resurser som behöver upprättas och städas upp på ett tillförlitligt sätt, såsom nätverksanslutningar eller databassessioner.

question mark

Hur stänger man en fil i Python?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5
some-alt