Đọc file trong python

Mọi người cho em hỏi: khi đọc dữ liệu vào từ file để lưu vào biến thì nó sẽ có kiểu dữ liệu string. Em muốn đọc nó thành kiểu int luôn thì phải làm như thế nào ạ ?

1 Like

Dùng int() để đổi + try except để bắt exception :smiley:
Ví dụ mẫu:

1 Like

Cách này có áp dụng vào python 2.7 được không hả bạn ?:sweat_smile:

Được chứ bạn :smiley:

2 Likes

Tại sao mình thay bằng lệnh

n = int(file.read()) 

thì lại không được hả bạn ?

Vì file.read() sẽ đọc toàn bộ file
-> có nh cái từa lưa ở trong đó nên nó ko parse đc
Bạn thay read = readline là đc :smiley:

2 Likes

Nó cứ hiện lỗi này là sao hả bạn ?

n = int(f.readline())
ValueError: invalid literal for int() with base 10: ‘\xff\xfe5’

Code của mình đây :

[code]f = []

def Fibonaci(n):
if (n == 1 or n == 2): return 1
else :
if (f[n - 1] == 0): f[n - 1] = Fibonaci(n - 1)
if (f[n - 2] == 0): f[n - 2] = Fibonaci(n - 2)
return (f(n - 1) + f(n - 2))

f = open(“fibo.txt”, “r”)
n = int(f.readline())
print(Fibonaci(n))
f.close()[/code]

cho mình xem file fibo.txt

1 Like

Mình thấy UTF-16
Chắc có thể do vậy mà nó bị lỗi.
Bạn thử lưu ở ASCII thay vì UTF-16 thử.
Vì mình thử thì chạy được.
Tuy nhiên code trên của bạn có chút vấn đề nhé.

1/ Tên biến đọc file trùng tên list
2/ List sẽ bị index out of bound khi chạy code

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?