Deskripsi Masalah. Kita perlu menyalin semua data dari satu file ke file lain. Nama kedua file disediakan oleh pengguna sebagai input. Jika file tujuan tidak ada, buat yang baru
Kami akan menggunakan konsep penanganan file dengan python dan membaca dan menulis konten di dalam file
Langkah-langkah untuk menyalin konten dari satu file ke file lainnya
- Langkah 1. Bawa pengguna nama file sumber dan tujuan
- Langkah 2. Jika sumbernya ada file sumber maka salin isi file sumber ke file tujuan
- Langkah 3. Jika file tujuan tidak ada, buat yang baru
Program untuk mengilustrasikan solusi dari masalah
sfile=input("Enter Source File:") try: sf=open(sfile,"rb") tfile = input("Enter Target File:") tf=open(tfile,"wb") tf.write(sf.read()) sf.close() tf.close() print("File Copied...") except FileNotFoundError as e: print(e)Keluaran
Enter Source File:data.dat Enter Target File:newdata.dat File Copied... Files : data.dat 10032,John Doe,45000 10323,Ram,50000 newData.dat 10032,John Doe,45000 10323,Ram,50000 _Di sini, kami telah meminta pengguna untuk memasukkan nama file untuk sumber dan tujuan. Setelah pengguna memberikan nama file sumber yang valid, kami telah menyalin isinya ke file tujuan
Kesalahan sintaks. (kesalahan unicode) codec 'unicodeescape' tidak dapat mendekode byte di posisi 2-3. terpotong \UXXXXXXXX melarikan diri
Dalam konteks contoh kita, kode lengkapnya akan terlihat seperti ini
import shutil original = r'C:\Users\Ron\Desktop\Test_1\products.csv' target = r'C:\Users\Ron\Desktop\Test_2\products.csv' shutil.copyfile(original, target)Jika Anda menjalankan kode dengan Python (disesuaikan dengan jalur Anda), Anda akan melihat bahwa file CSV 'produk' akan disalin ke folder Test_2
Atau, Anda dapat menyalin file dengan nama baru
Misalnya, mari salin file CSV asli (dengan nama file 'produk') ke lokasi baru dengan nama file baru ('produk_baru')
Nama file baru (disebut 'new_products') kemudian akan disalin di lokasi target (folder Test_2)
Prinsip yang sama akan berlaku untuk jenis file lainnya. Misalnya, misalkan file JPG bernama 'image' disimpan di folder Test_1
Terkadang Anda mungkin perlu menyimpan objek Python Anda secara lokal untuk digunakan nanti atau transfer Jaringan. Python memiliki perpustakaan yang fantastis untuk serialisasi seperti Json dan Pickle
Serialisasi menyimpan struktur data dalam program agar tidak hilang begitu saja setelah program dihentikan
Ada juga perpustakaan marshal tetapi lebih primitif dan tidak dapat menangani teknik tertentu seperti instance kelas dan rekursi. Marshal lebih dekat ke json dalam cakupan serialisasinya
Jadi, kapan Anda akan menggunakan pickle, cpickle, json atau ujson?
cpickle dan ujson adalah versi lebih cepat dari masing-masing pustaka yang memanfaatkan implementasi C dengan Python. Jadi mereka selalu menguntungkan karena alasan kecepatan
Selain itu, json adalah versi serialisasi yang lebih aman dan mudah dibaca daripada acar yang mengorbankan kecepatan
Meskipun Anda dapat menangani hampir semua struktur data di Python dengan Json, Json menjadi tidak efisien dengan file besar atau objek yang tidak biasa. Pickle di sisi lain beroperasi di sweet spot di mana Anda ingin bekerja dengan file besar (beberapa GB) dan masih tidak ingin direpotkan dengan solusi database
Masalahnya tergantung pada aplikasi Anda, Anda mungkin harus berhati-hati terhadap kerentanan keamanan yang diperkenalkan acar ke sistem sehingga biasanya bijaksana untuk mencari solusi json atau basis data sebelum beralih ke acar bila memungkinkan
Artikel ini dibuat untuk membahas beberapa program dengan Python, yang menyalin konten dari satu file ke file lainnya. Nama kedua file harus dimasukkan oleh pengguna saat run-time. Berikut daftar programnya
- Salin Konten dari Satu File ke File Lain tanpa menggunakan Metode copyfile()
- Menggunakan metode copyfile()
- Menggunakan dengan dan sebagai Kata Kunci
- Kode Python Terpendek untuk Menyalin Konten File
Hal yang Harus Dilakukan sebelum Program
Karena program yang diberikan di bawah ini menyalin konten dari satu file ke file lainnya, yang dimasukkan oleh pengguna. Oleh karena itu kami harus membuat file di dalam direktori saat ini. Direktori saat ini berarti, direktori tempat kode sumber Python untuk menyalin satu file ke file lain disimpan. Oleh karena itu buatlah sebuah file bernama codecracker. txt dengan konten berikut
Hello Python! I'm a File My name is codescracker.txt_
Ini snapshot folder tempat file dan kode sumber Python (untuk menyalin konten file) disimpan
Dan inilah snapshot dari codecracker file yang dibuka. txt
Sekarang mari beralih ke program yang menyalin konten file yang dimasukkan oleh pengguna (codescracker. txt di sini) ke file lain, juga dimasukkan oleh pengguna
Salin Konten dari Satu File ke File Lain dengan Python
Untuk menyalin konten dari satu file ke file lain dengan Python, Anda harus meminta dari pengguna untuk memasukkan nama dua file. File pertama disebut sebagai source, sedangkan file kedua disebut sebagai target file. Artinya, konten file sumber disalin ke file target seperti yang ditunjukkan pada program di bawah ini
Pertanyaannya adalah, tulis program Python untuk menyalin satu file ke file lain yang dimasukkan oleh pengguna saat run-time. Inilah jawabannya
print("Enter the Name of Source File: ") sFile = input() print("Enter the Name of Target File: ") tFile = input() fileHandle = open(sFile, "r") texts = fileHandle.readlines() fileHandle.close() fileHandle = open(tFile, "w") for s in texts: fileHandle.write(s) fileHandle.close() print("\nFile Copied Successfully!")
Ini adalah keluaran awal yang dihasilkan oleh program Python ini, meminta pengguna untuk memasukkan nama file sumber. File sumber adalah file, yang kontennya disalin ke file (target) lain
Sekarang berikan masukan, katakanlah pemecah kode. txt (file yang baru dibuat) sebagai nama file sumber, tekan tombol ENTER lalu ketik kode. txt sebagai nama file target, dan sekali lagi tekan tombol ENTER untuk menyalin konten file sumber ke file target
Jika file target tidak ada di direktori saat ini, maka file baru dengan nama yang sama akan dibuat dan konten file sumber akan disalin. Ini adalah output sampelnya
Setelah memasok input ini persis seperti yang ditunjukkan dalam contoh ini. Sebuah file bernama kode. txt dibuat di dalam folder yang sama, di mana kode sumber (program di atas) dan file (codescracker. txt) disimpan. Berikut snapshot dari folder tersebut
Seperti yang Anda lihat bahwa file baru dengan nama yang sama seperti yang dimasukkan untuk nama file target, dibuat. Dan jika Anda membuka kode file. txt, ini berisi konten yang sama dengan codecracker. txt
Versi Modifikasi dari Program Sebelumnya
Ini adalah versi modifikasi dari program sebelumnya. Program ini menggunakan coba-kecuali untuk mencetak pesan kesalahan ketika sesuatu yang aneh terjadi seperti file sumber yang dimasukkan oleh pengguna tidak ada
End= digunakan untuk melewati penyisipan baris baru menggunakan print(). Program ini juga menampilkan konten yang disalin jika pengguna memasukkan y sebagai pilihan
print("Enter Source File's Name: ", end="") sfile = input() try: filehandle = open(sfile, "r") print("Enter Target File's Name: ", end="") tfile = input() texts = filehandle.readlines() filehandle.close() try: filehandle = open(tfile, "w") for s in texts: filehandle.write(s) filehandle.close() print("\nContent of \"" +sfile+ "\" gets Copied to \"" +tfile+ "\" Successfully!") print("\nWant to Display the Content of \"" +tfile+ "\" (y/n) ? ", end="") chk = input() if chk.lower()=='y': try: filehandle = open(tfile, "r") contents = filehandle.readlines() for s in contents: print(s, end="") filehandle.close() print() except IOError: print("\nError occurred while opening the file!") except IOError: print("\nError occurred while opening/creating the file!") except IOError: print("\nThe file doesn't exist!")_
Ini adalah contoh yang dijalankan dengan input pengguna, pemecah kode. txt (nama file sumber), file. txt (nama file target), dan y (pilihan untuk melihat isinya)