Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Hỏi về việc ghi file trong python

19:44 16-06-2021 449 lượt xem 1 bình luận

Em có 1 file chứa 2 dòng
1 2 3 4 5 6

1 2 3 4 5 6

Em có nhiệm vụ phải viết số mới,nằm trên dòng đầu tiên và tạo list các phần tử của dòng đầu

Code của em

f = open('phong1.txt',mode='r+')
# Nhập số mình đưa vào file
d1=int(input('Nhập số mới: '))
# Đưa con trỏ tới cuối dòng
d = f.readline()
# Điều chỉnh con trỏ
f.seek(f.tell()-2)
# Ghi số mới vào file
f.write(str(d1))
# Tạo list chứa các phần tử của dòng trên
a= d.split(' ')
a.append(d1)
print(a)
f.close()

Nhưng khi em chạy code với số mới là 7 thì nó ghi file như này

1 2 3 4 5 6 7 1 2 3 4 5 6

Và list của em thì chứa cả escape sequence ['1', '2', '3', '4', '5', '6', '\n', 7]

Em muốn hỏi:

+)Cách khắc phục sao cho nó ghi file đúng như ý mình

1 2 3 4 5 6 7 

1 2 3 4 5 6

+)Và trong list của mình không có escape sequence ạ

Em cảm ơn

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Cu Xin Author đã bình luận 13:03 18-06-2021
f = open("demofile3.txt", "a")
f.writelines(["See you soon!", "Over and out."])
f.close()

#open and read the file after the appending:
f = open("demofile3.txt", "r")
print(f.read())

Bạn có thể sử dụng writeline để viết nhiều dòng vào file.

Logic sẽ trông như sau:

  • Có hai list, ta join list bằng space thành một chuỗi rồi đưa vào 1 biến, tương tự với list còn lại.
  • Thực hiện ghi vào file bằng writeline
  • Nếu có một số mới chèn vào thì bạn add vào list sao cho hợp lý rồi thực hiện lại các bước như trên.

Bạn nên format lại code của mình để người giúp đỡ dễ đọc code hơn nhé!

Câu hỏi mới nhất