01/10/2018, 00:32

Đọ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 ạ ?

*grab popcorn* viết 02:48 ngày 01/10/2018

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

Ideone.com

Ideone.com

Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.

Chu Mai Bình viết 02:41 ngày 01/10/2018

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

*grab popcorn* viết 02:47 ngày 01/10/2018

Được chứ bạn

Ideone.com

Ideone.com

Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.

Chu Mai Bình viết 02:45 ngày 01/10/2018

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

n = int(file.read()) 

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

*grab popcorn* viết 02:44 ngày 01/10/2018

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

Chu Mai Bình viết 02:36 ngày 01/10/2018

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’

Chu Mai Bình viết 02:47 ngày 01/10/2018

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]

*grab popcorn* viết 02:33 ngày 01/10/2018

cho mình xem file fibo.txt

Chu Mai Bình viết 02:46 ngày 01/10/2018

*grab popcorn* viết 02:45 ngày 01/10/2018

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

Bài liên quan
0