Skip to content

Instantly share code, notes, and snippets.

@TEGRAXD
Created June 11, 2021 08:37
Show Gist options
  • Select an option

  • Save TEGRAXD/6699dd0ec6f3c0fa86cb5fa523a9841b to your computer and use it in GitHub Desktop.

Select an option

Save TEGRAXD/6699dd0ec6f3c0fa86cb5fa523a9841b to your computer and use it in GitHub Desktop.
Friend's Task
# 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