Python - Dosyalar G / Ç

Bu bölüm, Python'da bulunan tüm temel G / Ç işlevlerini kapsar. Daha fazla işlev için lütfen standart Python belgelerine bakın.

Ekrana Yazdırma

Çıktı oluşturmanın en basit yolu, virgülle ayrılmış sıfır veya daha fazla ifadeyi geçirebileceğiniz print deyimini kullanmaktır . Bu işlev, ilettiğiniz ifadeleri bir dizeye dönüştürür ve sonucu aşağıdaki gibi standart çıktıya yazar -

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"

Bu, standart ekranınızda aşağıdaki sonucu verir -

Python is really a great language, isn't it?

Klavye Girişini Okuma

Python, varsayılan olarak klavyeden gelen standart girişten bir metin satırını okumak için iki yerleşik işlev sağlar. Bu işlevler -

  • raw_input
  • input

raw_input İşlevi

Raw_input ([istemi]) işlevi bir dizi (arka yeni satır kaldırma) gibi standart giriş ve geri döner işletmeye bir satır okur.

#!/usr/bin/python

str = raw_input("Enter your input: ")
print "Received input is : ", str

Bu, herhangi bir dizeyi girmenizi ister ve ekranda aynı dizeyi görüntüler. "Merhaba Python!" Yazdığımda çıktısı şöyle oluyor -

Enter your input: Hello Python
Received input is :  Hello Python

giriş İşlevi

Girişi ([istemi]) işlevi giriş geçerli bir Python ifadedir ve size değerlendirilen sonuç döndürür varsayar dışında raw_input fonksiyonuna bilgi eşdeğerdir.

#!/usr/bin/python

str = input("Enter your input: ")
print "Received input is : ", str

Bu, girilen girdiye karşı aşağıdaki sonucu üretecektir -

Enter your input: [x*5 for x in range(2,10,2)]
Recieved input is :  [10, 20, 30, 40]

Dosyaları Açma ve Kapatma

Şimdiye kadar, standart girdi ve çıktıyı okuyup yazıyordunuz. Şimdi, gerçek veri dosyalarını nasıl kullanacağımızı göreceğiz.

Python, dosyaları varsayılan olarak işlemek için gerekli temel işlevleri ve yöntemleri sağlar. Dosya işlemenin çoğunu birfile nesne.

açık İşlevi

Bir dosyayı okuyabilmeniz veya yazabilmeniz için, Python'un yerleşik open () işlevini kullanarak onu açmanız gerekir . Bu işlev birfile kendisiyle ilişkili diğer destek yöntemlerini çağırmak için kullanılacak nesne.

Sözdizimi

file object = open(file_name [, access_mode][, buffering])

İşte parametre ayrıntıları -

  • file_name - dosya_adı bağımsız değişkeni, erişmek istediğiniz dosyanın adını içeren bir dize değeridir.

  • access_mode- Erişim modu, dosyanın açılması gereken modu belirler, yani okuma, yazma, ekleme, vb. Olası değerlerin tam listesi aşağıda tabloda verilmiştir. Bu isteğe bağlı parametredir ve varsayılan dosya erişim modu okunur (r).

  • buffering- Arabelleğe alma değeri 0 olarak ayarlanırsa, arabelleğe alma gerçekleşmez. Arabelleğe alma değeri 1 ise, bir dosyaya erişilirken satır arabelleğe alma gerçekleştirilir. Arabelleğe alma değerini 1'den büyük bir tamsayı olarak belirtirseniz, arabelleğe alma eylemi belirtilen arabellek boyutuyla gerçekleştirilir. Negatifse, arabellek boyutu sistem varsayılanıdır (varsayılan davranış).

İşte bir dosyayı açmanın farklı modlarının bir listesi -

Sr.No. Modlar ve Açıklama
1

r

Yalnızca okumak için bir dosya açar. Dosya tanıtıcısı dosyanın başlangıcına yerleştirilir. Bu varsayılan moddur.

2

rb

Yalnızca ikili biçimde okumak için bir dosya açar. Dosya tanıtıcısı dosyanın başlangıcına yerleştirilir. Bu varsayılan moddur.

3

r+

Hem okumak hem de yazmak için bir dosya açar. Dosya tanıtıcısı dosyanın başlangıcına yerleştirilir.

4

rb+

İkili formatta hem okumak hem de yazmak için bir dosya açar. Dosya tanıtıcısı dosyanın başlangıcına yerleştirilir.

5

w

Yalnızca yazmak için bir dosya açar. Dosya varsa dosyanın üzerine yazar. Dosya yoksa, yazmak için yeni bir dosya oluşturur.

6

wb

Yalnızca ikili biçimde yazmak için bir dosya açar. Dosya varsa dosyanın üzerine yazar. Dosya yoksa, yazmak için yeni bir dosya oluşturur.

7

w+

Hem yazmak hem de okumak için bir dosya açar. Dosya varsa mevcut dosyanın üzerine yazar. Dosya yoksa, okumak ve yazmak için yeni bir dosya oluşturur.

8

wb+

İkili formatta hem yazmak hem de okumak için bir dosya açar. Dosya varsa mevcut dosyanın üzerine yazar. Dosya yoksa, okumak ve yazmak için yeni bir dosya oluşturur.

9

a

Eklemek için bir dosya açar. Dosya varsa, dosya işaretçisi dosyanın sonundadır. Yani dosya ekleme modundadır. Dosya yoksa, yazmak için yeni bir dosya oluşturur.

10

ab

İkili biçimde eklemek için bir dosya açar. Dosya varsa, dosya işaretçisi dosyanın sonundadır. Yani dosya ekleme modundadır. Dosya yoksa, yazmak için yeni bir dosya oluşturur.

11

a+

Hem eklemek hem de okumak için bir dosya açar. Dosya varsa, dosya işaretçisi dosyanın sonundadır. Dosya, ekleme modunda açılır. Dosya yoksa, okuma ve yazma için yeni bir dosya oluşturur.

12

ab+

İkili formatta hem eklemek hem de okumak için bir dosya açar. Dosya varsa, dosya işaretçisi dosyanın sonundadır. Dosya, ekleme modunda açılır. Dosya yoksa, okuma ve yazma için yeni bir dosya oluşturur.

Dosya Nesne Nitelikler

Bir dosya açıldığında ve bir dosya nesneniz olduğunda, o dosyayla ilgili çeşitli bilgiler alabilirsiniz.

Dosya nesnesiyle ilgili tüm özniteliklerin bir listesi -

Sr.No. Öznitelik ve Açıklama
1

file.closed

Dosya kapalıysa doğru, aksi takdirde yanlış döndürür.

2

file.mode

Dosyanın açıldığı erişim modunu döndürür.

3

file.name

Dosyanın adını döndürür.

4

file.softspace

Print ile açıkça alan gerekiyorsa false, aksi takdirde true döndürür.

Misal

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace

Bu, aşağıdaki sonucu verir -

Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb
Softspace flag :  0

Kapat () Yöntem

Bir dosya nesnesinin close () yöntemi tüm yazılmamış bilgileri temizler ve dosya nesnesini kapatır, bundan sonra başka yazma yapılamaz.

Python, bir dosyanın referans nesnesi başka bir dosyaya yeniden atandığında dosyayı otomatik olarak kapatır. Bir dosyayı kapatmak için close () yöntemini kullanmak iyi bir uygulamadır.

Sözdizimi

fileObject.close()

Misal

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name

# Close opend file
fo.close()

Bu, aşağıdaki sonucu verir -

Name of the file:  foo.txt

Dosyaları Okuma ve Yazma

Dosya nesnesi hayatımızı kolaylaştırmak için erişim yöntemleri kümesi sağlar. Dosyaları okumak ve yazmak için read () ve write () yöntemlerini nasıl kullanacağımızı görürdük .

Yazma () Yöntem

Yazma () metodu bir açık dosyaya herhangi bir dize yazar. Python dizelerinin yalnızca metne değil ikili verilere sahip olabileceğini unutmamak önemlidir.

Write () yöntemi dizenin sonuna bir satırsonu karakteri ('\ n') eklemez -

Sözdizimi

fileObject.write(string)

Burada geçirilen parametre, açılan dosyaya yazılacak içeriktir.

Misal

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
fo.write( "Python is a great language.\nYeah its great!!\n")

# Close opend file
fo.close()

Yukarıdaki yöntem foo.txt dosyası oluşturur ve verilen içeriği o dosyaya yazar ve sonunda bu dosyayı kapatır. Bu dosyayı açarsanız, aşağıdaki içeriğe sahip olacaktır.

Python is a great language.
Yeah its great!!

Okuma () Yöntem

Okuma () metodu açık dosyasından bir dize okur. Python dizelerinin ikili verilere sahip olabileceğini unutmamak önemlidir. metin verilerinin dışında.

Sözdizimi

fileObject.read([count])

Burada aktarılan parametre, açılan dosyadan okunacak bayt sayısıdır. Bu yöntem, dosyanın başından okumaya başlar ve sayı eksikse, mümkün olduğunca, belki dosyanın sonuna kadar okumaya çalışır.

Misal

Yukarıda oluşturduğumuz foo.txt dosyasını alalım .

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
# Close opend file
fo.close()

Bu, aşağıdaki sonucu verir -

Read String is :  Python is

Dosya Pozisyonları

Söyle () yöntem size dosya içinde mevcut konumu anlatır; diğer bir deyişle, sonraki okuma veya yazma, dosyanın başlangıcından itibaren bu kadar baytta gerçekleşecektir.

Arama (uzaklık [, başlangıç]) yöntemi geçerli dosya konumunu değiştirir. Ofset bağımsız değişken bayt sayısı Taşınacak gösterir. Den bağımsız değişken bayt Taşınacak olduğu referans konumunu belirtir.

Eğer gelen 0 olarak ayarlanır, bu araçlar referans konumu olarak dosyanın başlangıcına kullanımı durumu, 1 referans konumu olarak mevcut pozisyonu kullanmak ve daha sonra 2 olarak ayarlanmışsa, dosyanın sonuna referans konumu olarak alınacaktır .

Misal

Yukarıda oluşturduğumuz foo.txt dosyasını alalım .

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print "Read String is : ", str

# Check current position
position = fo.tell()
print "Current file position : ", position

# Reposition pointer at the beginning once again
position = fo.seek(0, 0);
str = fo.read(10)
print "Again read String is : ", str
# Close opend file
fo.close()

Bu, aşağıdaki sonucu verir -

Read String is :  Python is
Current file position :  10
Again read String is :  Python is

Dosyaları Yeniden Adlandırma ve Silme

Python os modülü, dosyaları yeniden adlandırma ve silme gibi dosya işleme işlemlerini gerçekleştirmenize yardımcı olan yöntemler sağlar.

Bu modülü kullanmak için önce onu içe aktarmanız gerekir ve ardından ilgili işlevleri çağırabilirsiniz.

Rename () Yöntemi

Adlandırma () metodu iki bağımsız mevcut dosya adını ve yeni bir dosya adı alır.

Sözdizimi

os.rename(current_file_name, new_file_name)

Misal

Aşağıda, var olan bir dosyayı yeniden adlandırmak için örnek verilmiştir test1.txt -

#!/usr/bin/python
import os

# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )

Remove () Yöntem

Silinecek dosyanın adını bağımsız değişken olarak sağlayarak dosyaları silmek için remove () yöntemini kullanabilirsiniz.

Sözdizimi

os.remove(file_name)

Misal

Mevcut bir test2.txt dosyasını silme örneği aşağıdadır -

#!/usr/bin/python
import os

# Delete file test2.txt
os.remove("text2.txt")

Python'daki Dizinler

Tüm dosyalar çeşitli dizinlerde bulunur ve Python da bunları işlemede sorun yaşamaz. os modülünde dizinleri oluşturmanıza, kaldırmanıza ve değiştirmenize yardımcı olan birkaç yöntem vardır.

Mkdir () Yöntem

Mkdir () yöntemini kullanabilirsiniz .osmodül mevcut dizinde dizinler oluşturmak için. Oluşturulacak dizinin adını içeren bu yönteme bir argüman sağlamanız gerekir.

Sözdizimi

os.mkdir("newdir")

Misal

Geçerli dizinde bir dizin testi oluşturma örneği aşağıdadır -

#!/usr/bin/python
import os

# Create a directory "test"
os.mkdir("test")

Chdir () Yöntem

Sen kullanabilirsiniz chdir () geçerli dizini değiştirmek için bir yöntem. Chdir () yöntemi, geçerli dizini yapmak istediğiniz dizinin adı olan bir bağımsız değişken alır.

Sözdizimi

os.chdir("newdir")

Misal

Aşağıda "/ home / newdir" dizinine gitmek için örnek verilmiştir -

#!/usr/bin/python
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

Getcwd () Yöntem

Getcwd () metodu görüntüler Geçerli çalışma dizini.

Sözdizimi

os.getcwd()

Misal

Geçerli dizini veren örnek aşağıdadır -

#!/usr/bin/python
import os

# This would give location of the current directory
os.getcwd()

Rmdir () Yöntem

Rmdir () metodu yöntemindeki bir bağımsız değişken olarak geçirilir dizini siler.

Bir dizini kaldırmadan önce, içindeki tüm içerik kaldırılmalıdır.

Sözdizimi

os.rmdir('dirname')

Misal

Aşağıda "/ tmp / test" dizinini kaldırmak için örnek verilmiştir. Dizinin tam olarak nitelenmesi gerekir, aksi takdirde o dizini geçerli dizinde arar.

#!/usr/bin/python
import os

# This would  remove "/tmp/test"  directory.
os.rmdir( "/tmp/test"  )

Dosya ve Dizinle İlgili Yöntemler

Windows ve Unix işletim sistemlerindeki dosyaları ve dizinleri işlemek ve değiştirmek için çok çeşitli yardımcı yöntemler sağlayan üç önemli kaynak vardır. Bunlar aşağıdaki gibidir -

  • Dosya Nesnesi Yöntemleri : Dosya nesnesi, dosyaları işlemek için işlevler sağlar.

  • İşletim Sistemi Nesne Yöntemleri : Bu, dosyaları ve dizinleri işlemek için yöntemler sağlar.