Created
June 11, 2021 08:37
-
-
Save TEGRAXD/6699dd0ec6f3c0fa86cb5fa523a9841b to your computer and use it in GitHub Desktop.
Friend's Task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # read row 4 | |
| with open("C:\\test.txt", 'r') as f: | |
| print(f.readlines()[3], end='') | |
| # change line | |
| with open("C:\\test.txt", 'r+') as f: | |
| line = int(input('Line ke berapa yang ingin diganti: ')) | |
| # readlines() tidak dapat dipanggil berkali-kali, jadi perlu dipindahkan sementara, jadi kalau mau copy tinggal variable = temporary. | |
| temporary = f.readlines() | |
| # range(start, end, step) *step tidak perlu di-isi*, range digunakan untuk membuat array angka, start 1, endnya adalah len(temporary) yaitu panjang array temporary. contoh panjang arraynya adalah 5 row berarti [1, 2, .., 5] | |
| # if input line tidak ada didalam array 1..hingga panjang row pada file maka Munculkan error, karena user memasukkan input melebihi maksimal panjang row line. | |
| if line not in range(1, len(temporary)): | |
| # raise sama seperti Throwing an error. Untuk menyatakan bahwa ini adalah kesalahan, dan memaksa kode untuk berhenti. | |
| raise Exception("Anda melampaui batas maksimal Line pada file.") | |
| nim = input('Masukkan NIM: ') | |
| nama = input('Masukkan Nama: ') | |
| # temporary[line yang dipilih (contoh line 1) - 1 = 0, *index selalu dimulai dari 0*] = "nim yang dimasukkan,nama yang dimasukkan" | |
| temporary[line-1] = "{},{}\n".format(nim, nama) | |
| # strategi yang digunakan kurang lebih spt ini: | |
| # 1. File diload ke python dengan r+ (read and write) | |
| # 2. Isi file yang mana adalah Array dimasukkan kedalam variable temporary | |
| # 3. Kini temporary berisi array dari file txt | |
| # 4. Ubah line pada variable temporary | |
| # 5. Posisi ini file belum berubah, berhubung mode r+ adalah append (spt mode a), yaitu menambah bukan auto menghapus semua dan menulis ulang | |
| # 6. File ditruncate / dihapus semua, truncate, 0 adalah size file dalam bytes, 0 sama dengan menghapus semua, jika tidak diisi tidak akan menghapus bila mode r+ | |
| f.truncate(0) | |
| # 7. File ditulis ulang menggunakan temporary variable tadi. Jadi data yang tidak diubah akan tetap sama. | |
| # contoh file berisi 2 row, temporary [1, 2], temporary[1] = 3, temporary sekarang [1, 3], file lakukan delete(), file kosong, file di isi oleh temporary, file berisi 2 row kembali. | |
| f.writelines(temporary) | |
| # membaca semua | |
| with open("C:\\test.txt", 'r') as f: | |
| for line in f: | |
| print(line, end='') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment