30/09/2018, 17:18

hỏi về đọc file trong python

Các anh cho e hỏi với ạ, e có đoạn code như sau, sau khi chạy ra thì nó đọc ra 1 đống mã hexa, các bác cho em hỏi mã hexa đó là j vs ạ?

from sys import argv
from os.path import exists

script, from_file  = argv

fo = open(from_file, 'w+')
fo.write('1')
pos = fo.tell()
print "vi tri hien tai %d" %(pos)

line = fo.read()
pos = fo.tell()
print "read line %s" %(line)
print "vi tri hien tai %d" %(pos)

fo.close()

Mai Anh Dũng viết 19:25 ngày 30/09/2018

@vietanh gửi thêm câu lệnh để chạy cái này được không?

vietanh viết 19:21 ngày 30/09/2018

dạ e chạy hàm này trong powershell lệnh là:

python .\hello.py .\newfile.txt

Mai Anh Dũng viết 19:31 ngày 30/09/2018

Em thêm dòng này fo.seek(0, 0) vào để di chuyển con trỏ đọc file về đầu file. Bởi vì sau khi mình ghi file xuống, con trỏ đọc nó trỏ tới cuối file rồi. Nếu đọc tiếp nữa thì nó sẽ đọc dữ liệu không thuộc về file, tức là vùng nhớ sau file.

Dùng lệnh fo.seek(0, 0) để đưa con trỏ đọc về đầu file là xong

from sys import argv
from os.path import exists

script, from_file  = argv

fo = open(from_file, 'w+')
fo.write('1')
pos = fo.tell()
print "vi tri hien tai %d" %(pos)

fo.seek(0, 0)

line = fo.read()
pos = fo.tell()
print "read line %s" %(line)
print "vi tri hien tai %d" %(pos)

fo.close()
vietanh viết 19:32 ngày 30/09/2018

dạ vâng e cảm ơn a ạ e cũng nghĩ là con trỏ đưa về cuối file nhưng ko biết cái mã nó hiện ra là j, e cảm ơn.
a ơi a cố gắng làm tiếp chuỗi video về python nhé, em đang học đến video 38 r mà e thấy a ko ra nữa :< video a đạyễ hiểu lắm ạ. Cảm ơn anh

Bài liên quan
0