Python becerinizi geliştirmek ister misiniz? Daha sonra bilgisayarınızda bazı görevleri Python ile yapmayı deneyebilirsiniz. Python ile dosyaları bir dizinden diğerine kopyalayıp yapıştırmak, bunu yapmanın eğlenceli bir yoludur.
Eğlenceli olmanın yanı sıra, kodunuzdan uzaklaşmadan dosyaları hızlı bir şekilde okuyup yazmanıza da olanak tanır. Python'da yeniyseniz, bu, bir şekilde veya başka bir şekilde seçmeniz gereken bir beceridir. Öyleyse, bu yazı aracılığıyla dosyaları Python ile nasıl kopyalayacağımızı öğrenelim.
Python ile Dosya Kopyalama Gereksinimleri
Python ile dosya kopyalayıp yapıştırmanın birçok yolu vardır. Dolayısıyla, bunu yapma zorunluluğu değişir ve kullanmaya karar verdiğiniz yönteme bağlıdır.
Python ile dosya kopyalamak için fazladan modüllere ihtiyacınız olmayabilir, ancak yine de isterseniz yerleşik kitaplıkları kullanabilirsiniz.
Örneğin, işletim sistemi yöntemi, kodunuza aktarmanız gerekir. Ancak, dosyaları Python ile kopyalamanın popüler yollarından biri, kepenk kütüphane.
Dosyaları Python ile kopyalamak için bu çeşitli yöntemleri nasıl kullanabileceğimize bakalım.
Python'un Yerleşik Shutil Kitaplığını Kullanarak Dosyaları Kopyalama
The kepenk module, dosyaları Python'da hızlı bir şekilde okumak ve yazmak için yerleşik ve güçlü bir Python kitaplığıdır.
Kullanmak için, yalnızca kaynak ve hedef dosyaların tam yolunu sağlamanız gerekir.
Özünde, kepenk bu formatı alır:
shutil.copy ([kaynak dizin yolu], [hedef dizin yolu], follow_symlinks = True)
Örneğin, aşağıdaki kod kullanır shutil.copy () adlı bir dosyayı kopyalamak için copy.txt adlı bir klasörden klasörüm adında başka birine hedef. Ardından hedef dosyayı şu şekilde yeniden adlandırır: newFile.txt:
ithalat panjuru
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (kaynakDosya, hedefDosya, follow_symlinks = Doğru)
Kodunuzu şuraya yazabileceğinizi unutmayın: seçtiğiniz herhangi bir kod düzenleyici. Daha sonra komut satırını kullanarak çalıştırabilirsiniz.
Bununla birlikte, Python'u komut satırı aracılığıyla çalıştırmaya aşina değilseniz, varsayılan Python Entegre Geliştirme Ortamı'nı (IDLE) da kullanabilirsiniz.
İlişkili: Bilmeniz Gereken Komut İstemi (CMD) Komutları
The shutil.copy yöntem, kaynak dosyanın meta verilerini kopyalamaz. Temelde, makineniz hedef dosyayı tamamen yeni bir dosya olarak görür ve ona yeni meta veriler verir.
Ancak, meta verileri orijinal dosyayla birlikte kopyalamak için, shutil.copy2 yöntem:
ithalat panjuru
shutil.copy2 (kaynakDosya, hedefDosya, follow_symlinks = Doğru)
Yukarıdaki yöntem, eski dosyanın orijinal meta verilerini hedef dosyada korur. Örneğin, hedef dosya, kaynak dosyayı oluşturduğunuz tarihi, boyutunu ve diğer öznitelikleri saklar.
The follow_symlinks argüman sembolik bir bağlantı bildirimi olup, kepenk mutlak bir yol izleyin. Bu nedenle, kaynak ve hedef dosyalar farklı dizinlerde ise bunu eklemeniz gerekir.
Ancak her iki dosya da geçerli çalışma dizininizdeyse, bir follow_symlinks. Bunu yaparsanız, Python bir sözdizimi istisnası oluşturur.
Dolayısıyla, kaynak dosyayı mevcut çalışma dizininize yapıştırıyorsanız, kodunuz şöyle görünmelidir:
ithalat panjuru
shutil.copy2 (kaynakDosya, hedefDosya)
Yukarıdaki shutil yöntemlerini kullanmanın yanı sıra, şunları da kullanabilirsiniz: shutil.copyfile veya shutil.copyfileobj.
Kullanma shutil.copyfileobj yerleşik gerektirdiği için biraz farklıdır açık işlevi. Ardından, dahil ederek ikili okuyup yazmanız gerekir. "rb" ve "wb" argümanlar.
Bakalım nasıl shutil.copyfileobj yöntem daha önce kullandığımız aynı dizinleri kullanarak çalışır:
ithalat panjuru
sourceFilePath = open ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = open ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)
Bunu not et shutil.copyfileobj () gerektirmez follow_symlinks argüman.
Ancak, shutil.copyfile () oldukça aynı şekilde çalışır .copy ve .copy2 yapar. Yalnızca iç işlevlerinde önemsiz ölçüde farklılık gösterirler.
Kullanmak için shutil.copyfile () yöntem:
ithalat panjuru
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)
OS Modülü ile Dosya Kopyalama
The işletim sistemi modül, dosyaları kopyalamak için iki yerleşik yöntem kullanır; os.system () ve os.popen () yöntemler.
The os.system () yöntem komut satırı ortamını taklit etmenize izin verir.
Ancak, os yöntemlerinin bir eksikliği, yalnızca geçerli çalışma dizininizdeki dosyaları kopyalamalarıdır.
Kullanmak için os.system () Windows'ta yöntem:
işletim sistemini içe aktar
os.system ('source.txt destination.txt dosyasını kopyala)
Ayrıca yerleşik olanı da kullanabilirsiniz. xcopy Windows terminal komutu:
işletim sistemini içe aktar
os.system ('xcopy source.txt hedef.txt)
Kullanmak için os.system Linux'ta yöntem, değiştirin kopya ile cp:
işletim sistemini içe aktar
os.system ('cp kaynak.txt hedef.txt)
Os.popen Yöntemini Kullanarak Dosyaları Kopyalama
Bu yöntemi kullanmak için değiştirin os.system () ile os.popen ().
Windows'ta şunu kullanın:
işletim sistemini içe aktar
os.popen ('source.txt destination.txt dosyasını kopyala)
Yaptığımız gibi os.system (), değiştir kopya ile cp bu yöntemi Linux'ta kullanmak için:
işletim sistemini içe aktar
os.popen ('cp source.txt destination.txt)
Python'un alt işlem Modülüyle Dosya Kopyalama
Yukarıdaki yöntemlere ek olarak, ayrıca alt süreç () dosyaları Python'da kopyalamak için kitaplık:
alt süreci sp olarak içe aktar
sp.call ("kaynakDosya hedefDosyasını kopyala", kabuk = True)
Ancak, Linux'ta şunu kullanın:
alt süreci sp olarak içe aktar
sp.call ("cp sourceFile hedefDosya", kabuk = True)
The alt süreç kütüphane ayrıca kullanır subprocess.check_out () yöntem. Aynı şekilde çalışır subprocess.call () yapar:
alt süreci sp olarak içe aktar
sp.check_out ("kaynakDosya hedefDosyasını kopyala", kabuk = Doğru)
Linux'ta, değiştirin kopya ile cp:
alt süreci sp olarak içe aktar
sp.check_out ("cp sourceFile destinationFIle", shell = True)
Ancak, os yöntemleri gibi, alt işlem yöntemleri de yalnızca geçerli çalışma dizininizdeki dosyalarla çalışır.
Not: Ayrıca, kaynak dosyayla aynı çalışma dizinindeyse dosyaları bir klasöre kopyalayabilirsiniz. Tek yapmanız gereken, hedef dosya adını hedef klasörün adıyla değiştirmektir. Ancak, hedef klasörün ve kaynak dosyanın geçerli çalışma dizininizde olduğundan emin olun.
Python'da Kitaplıklar Kullanmadan Dosyaları Kopyalama
Ayrıca herhangi bir kitaplığa bağlı kalmadan dosyaları Python'da kopyalayabilirsiniz. Shutil yöntemi gibi, yalnızca kaynak ve hedef dizinlerin tam yollarına ihtiyacınız vardır.
Bunu nasıl başaracağınız aşağıda açıklanmıştır:
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
açık (sourcePath, "rb") okunduğu gibi:
dosyam olarak open (destinationPath, "wb") ile:
myfile.write (read.read ())
İçin kodu yeniden kullanılabilir hale getirin, bunu bir işleve dönüştürebilirsiniz:
def copyFile (kaynak = Yok, hedef = Yok):
değilse (kaynak ve hedef) == Yok:
açık (kaynak, "rb") okunduğu gibi:
dosyam olarak open (hedef, "wb") ile:
myfile.write (read.read ())
Başka:
yazdır ("Lütfen kaynak ve hedef yolları girin")
copyFile (sourcePath, destinationPath)
Bu kadar. Python ile herhangi bir kitaplık kullanmadan yeniden kullanılabilir bir dosya kopyalayıcı yaptınız.
Python ile Görevleri Otomatikleştirmeye Devam Edin
Projeleri oluştururken kodunuza odaklanmanıza yardımcı olmanın yanı sıra, dosyaları Python ile kopyalamak, Python ile dosya yönetimini daha iyi anlamanıza olanak tanır. Bununla birlikte, Python görevleriyle uğraşmak, özellikle yeni başlayan biriyseniz, Python becerinizi geliştirmenin bir yoludur.
Örneğin, PC'nizdeki tarih ve saati os modülü ile değiştirebilirsiniz. İsterseniz Python ile özel bash komutları bile yazabilirsiniz.
Kendi Python komut satırı programlarınızı yapmak istiyorsunuz, ancak bunu çok mu zor buluyorsunuz? Kodunuzu düzene koymak için kullanışlı bir Python aracı olan Click'i kullanın.
- Programlama
- Python
Idowu, akıllı teknoloji ve üretkenlik konusunda tutkulu. Boş zamanlarında kodlama ile oynar ve sıkıldığında satranç tahtasına geçer, ancak arada bir rutinden uzaklaşmayı da sever. İnsanlara modern teknolojinin etrafındaki yolu gösterme tutkusu, onu daha fazla yazmaya motive ediyor.
Haber bültenimize abone ol
Teknoloji ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için haber bültenimize katılın!
Bir adım daha…!
Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.