Dạ chào cả nhà, em là mem mới tập tành học python nên có 1 chút thắc mắc ạ, e thử 1 đoạn code như sau, mà sau khi thử hàm truncate
ko hoạt động, cụ thể là ko xóa nội dung file nên khi e để ở mode a+
hay r+
đều thêm vào nội dung file, đặc biệt ở mode r+
nó ko chèn thêm ở dưới dòng cuối mà chen lẫn lên dòng cuối ký tự luôn, các bác cho em hỏi là e hiểu sai về hàm truncate
và cách hoạt động của các mode r+,a+
hay như nào ạ? vì theo e nghĩ thì hàm truncate
này khi chạy nó đã xóa hết ký tự trong file text r chứ ạ?
còn 1 cấn đề nữa ạ, là ở đoạn sau [chỗ bôi đen in đậm gạch chân ý ạ] khi e thêm vào và cho hiện ký tự thì nó lại hiện ra 1 đống nhị phân @@, ko đọc đc file ạ, e ko hiểu lắm, các bác giúp e vs ạ
em xin cảm ơn :xauho:
from sys import argv
script, filename = argv
print "we're going to erase %r." %filename
print "if you don't want that, hit CTRL-C [^C]."
print "if you do want that, hit return."
raw_input['?']
print "opening the file..."
target = open[filename, 'r+']
print "File: %r" %filename
print target.read[]
print "Truncating the file. Goodbye!"
target.truncate[]
print "now i'm going to ask you for three line."
line1 = raw_input["line1: "]
line2 = raw_input["line2: "]
line3 = raw_input["line3: "]
print "i'm going to write these to the file."
target.write[line1]
target.write["\n"]
target.write[line2]
target.write["\n"]
target.write[line3]
target.write["\n"]
print "File: %r" %filename
print target.read[]
print "and finally, we close it."
target.close[]
❮ File Methods
Example
Open the file with "a" for appending, then truncate the file to 20 bytes:
f = open["demofile2.txt", "a"]
f.truncate[20]
f.close[]
#open and read the file after the truncate:
f = open["demofile2.txt", "r"]
print[f.read[]]
Definition and Usage
The truncate[]
method resizes the file to the given number of bytes.
If the size is not specified, the current position will be used.
Syntax
Parameter Values
ParameterDescriptionsizeOptional. The size of the file [in bytes] after the truncate. Default None, which means the current file stream position.❮ File Methods
Phương thức truncate[] cắt gọn kích cỡ file. Nếu tham số size tùy ý này có mặt, thì file được cắt gọn về kích cỡ đó.
Nếusize vượt quá kích cỡ file hiện tại thì kết quả tùy thuộc vào nền tảng.
Ghi chú: Phương thức không làm việc với file được mở trong chế độ read-only.
Cú pháp
Cú pháp của truncate[] trong Python:
fileObject.truncate[ [ size ]]
Chi tiết về tham số:
size -- Nếu tham số size tùy ý này có mặt, thì file được cắt gọn về kích cỡ đó.
Trả về giá trị
Phương thức này không trả về bất cứ giá trị nào.
Chương trình Python ví dụ
Ví dụ sau minh họa cách sử dụng của truncate[] trong Python.
Giả sử có foo.txt file có nội dung:
Dong thu nhat: Ho va ten Dong thu hai: Tuoi Dong thu ba: Gioi tinh Dong thu tu: Nghe nghiep Dong thu nam: Tinh trang hon nhan
# Mo mot file fo = open["foo.txt", "rw+"] print "Ten cua file la: ", fo.name # Gia su trong file co 5 dong sau # Dong thu nhat: Ho va ten # Dong thu hai: Tuoi # Dong thu ba: Gioi tinh # Dong thu tu: Nghe nghiep # Dong thu nam: Tinh trang hon nhan line = fo.readline[] print "Dong da doc la: %s" % [line] # Bay gio truncate. fo.truncate[] # Luc nay ban co gang doc thu file line = fo.readline[] print "Dong da doc la: %s" % [line] # Dong file da mo fo.close[]
Chạy chương trình Python trên sẽ cho kết quả −
Ten cua file la: foo.txt Dong da doc la: Dong thu nhat: Ho va ten Dong da doc la: