Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah kegunaan pernyataan WITH dalam Python?

Apakah kegunaan pernyataan WITH dalam Python?

王林
王林ke hadapan
2023-08-18 22:53:141856semak imbas

Apakah kegunaan pernyataan WITH dalam Python?

Dalam artikel ini, kita akan mempelajari tentang pernyataan "dengan" dalam Python dan penggunaannya.

  • Dalam Python, pernyataan with menggantikan blok cuba-tangkap dengan cara yang ringkas.

  • Lebih penting, ia memastikan sumber ditutup serta-merta selepas diproses.

  • Menggunakan pernyataan dengan untuk membaca atau menulis fail adalah penggunaan biasa.

  • Pengurus konteks ialah fungsi atau kelas yang menyokong pernyataan dengan. Pengurus konteks membolehkan anda membuka dan menutup sumber apabila anda mahu.

  • Sebagai contoh, fungsi open() ialah pengurus konteks. Apabila anda memanggil fungsi open() menggunakan pernyataan dengan, fail ditutup secara automatik selepas memproses fail.

Gunakan pernyataan "dengan" untuk membuka dan membaca fail

Algoritma (langkah)

Berikut ialah algoritma/langkah untuk melaksanakan tugasan yang diperlukan:

  • Gunakan fungsi open() (yang membuka fail dan mengembalikan objek fail sebagai hasilnya) untuk membuka fail teks dalam mod baca sahaja dengan menghantar nama fail dan mod sebagai parameter kepadanya ("r " di sini bermaksud mod baca sahaja) .

with open(inputFile, 'r') as fileData:
  • Gunakan fungsi readlines() untuk mendapatkan senarai baris fail teks yang diberikan.

file.readlines(hint)
  • Gunakan gelung for untuk melelaran melalui setiap baris fail teks yang diberikan.

  • Cetak baris fail teks yang sepadan.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

# input file path
inputFile = "ExampleTextFile.txt"
print("The lines of a given Text File are:")

# Opening the given file in read-only mode.
with open(inputFile, 'r') as fileData:
   
   # Read the above file lines using readlines()
   fileLines = fileData.readlines()
   
   # Traverse in the each line of the text file
   for textLine in fileLines:
      
      # printing each line
      print(textLine)

Output

The lines of a given Text File are:
Good Morning this is Tutorials Point sample File
Consisting of Specific
Good source codes in Python,Seaborn,Scala
Summary and Explanation

Gunakan kata kunci `dengan` bukan sahaja untuk membuka fail dalam mod baca, tetapi juga untuk menetapkan alias pada fail yang dibuka.

Gunakan pernyataan "dengan" dan bukannya blok cuba-tangkap

Dalam Python, anda boleh menggunakan pengendalian ralat cuba-tangkap untuk membuka dan menulis fail.

Di bawah tudung, pernyataan dengan menggantikan blok cuba tangkap

berikut Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

# opening the file in write mode using the open() function
inputFile = open("tutorialsFile.txt", "w")

# handling the exceptions using try-catch blocks
try:
   # writing text into the file
   inputFile.write("Hello tutorialsPoint python")
finally:
   # closing the file
   inputFile.close()

Output

Hello tutorialsPoint python

Apl ini membuka fail tutorialsFile.txt. Jika tiada fail sedemikian wujud, program menciptanya. Kod itu kemudian menulis "Hello tutorialsPoint python" pada fail dan kemudian menutup fail.

Tiada masalah dengan kaedah ini. Walau bagaimanapun, tugas ini boleh dicapai dengan lebih elegan menggunakan pernyataan dengan.

Sekarang mari kita cipta semula contoh sebelumnya menggunakan pernyataan dengan

# opening a file in write mode with an alias name using with statement
with open("tutorialsFile.txt", "w") as file:
   
   # writing text into the file
   file.write("Hello tutorialsPoint python")

Ini memudahkan kod kerana pernyataan dengan boleh mengendalikan penutupan fail selepas ia digunakan. Itulah sebabnya secara amnya menggunakan pernyataan dengan adalah teknik pilihan untuk membuka fail dalam Python.

Python "dengan" pernyataan dan pengurus konteks

Apabila memproses fail, anda mungkin berfikir bahawa pernyataan with hanya digunakan pada fungsi open(). Walau bagaimanapun, ini tidak berlaku. Kelas dan objek yang menyokong pernyataan dengan juga boleh dibuat.

Pengurus konteks ialah kelas atau fungsi yang menyokong pernyataan dengan

Jika anda ingin menambahkan pengurusan sumber pada projek anda, anda boleh menggunakan pengurus konteks. Untuk dianggap sebagai pengurus konteks, kelas mesti melaksanakan dua kaedah berikut −

  • __masuk__()
  • __keluar__()

Selepas melaksanakan kaedah ini, anda boleh menggunakan pernyataan dengan pada objek kelas.

  • Apabila pernyataan with dipanggil, kaedah __enter__() akan dipanggil.

  • Apabila anda keluar dari skop blok dengan, kaedah __exit__() akan dipanggil.

Buat pengurus konteks untuk penulisan fail

Fungsi kelas ini adalah sama dengan kaedah open()

class FileWriter(object):
   def __init__(self, fileName):
      self.fileName = fileName

   def __enter__(self):
      self.file = open(self.fileName, "w")
      return self.file

   def __exit__(self, exception_type, exception_value, traceback):
      self.file.close()

Cara menggunakan program di atas

  • Menggunakan FileWriter(nama fail), objek FileWriter baharu dicipta dan __enter__() dipanggil.

  • Kaedah
  • __enter__() digunakan untuk memulakan sumber yang diperlukan. Dalam kes ini ia membuka fail teks. Ia juga mesti mengembalikan deskriptor sumber dan oleh itu fail terbuka.

  • sebagai fail menyerahkan fail kepada pembolehubah bernama fail.

  • Akhir sekali, dalam blok dengan selepas titik bertindih, letakkan kod yang akan dilaksanakan dengan sumber yang diambil.

  • Apabila pelaksanaan kod ini selesai, kaedah __exit__() akan dipanggil secara automatik. Dalam kes ini ia menutup fail.

Bagaimana untuk menulis kaedah pengurus konteks anda?

Pengurus konteks yang ditulis sebelum ini ialah kelas, tetapi bagaimana jika anda ingin mencipta kaedah pengurus konteks yang serupa dengan fungsi open()? Python juga membolehkan anda menulis kaedah pengurus konteks.

Tukar kaedah kepada pengurus konteks menggunakan modul contextlib.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

# importig the contextmanager from contextlib module
from contextlib import contextmanager

# Marking the file_open() function as a context manager
# using contextmanager decorator
@contextmanager
def file_open(name):
   try:
      file = open(name, "w")
      yield file
   finally:
      file.close()

with file_open("exampleFile.txt") as file:
   file.write("Hello tutorialsPoint python")
Terjemahan

exampleFile.txt

ialah:

exampleFile.txt

Hello tutorialsPoint python

Di sini, kami mencipta fungsi baharu menggunakan kata kunci dengan dan menamakannya. Apabila kita memanggil fungsi ini, ia cuba membuka fail yang ditentukan dalam mod tulis dan mengembalikan hasilnya. Jika ralat berlaku, fail akan ditutup.

Kesimpulan

Kami belajar cara menggunakan pernyataan dengan contoh dalam artikel ini.

Atas ialah kandungan terperinci Apakah kegunaan pernyataan WITH dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam