01/10/2018, 10:10

Lấy từng giá trị từ file text thả vào mảng 2 chiều

Mình có 1 file txt, lưu theo cú pháp:
1 2 4 4
3 2 1 0
2 4 2 1
1 2 4 2
bây giờ muốn lấy giá trị từ file text này lưu từng giá trị từ trên xuống, từ trái qua như sau
list[0][0]=1, list[0][1]=2, list[0][3]=4,…

Và nữa là lấy số dòng của file text đó?
Mình cảm ơn các bác.

Khoa NTA viết 12:15 ngày 01/10/2018

Ý của bạn là nhờ code dùm? Nếu là như vậy thì không hay đâu

Mình có các bước, bạn tham khảo:

  1. Đọc file.
  2. Cắt ra thành từng dòng, lưu vào list.
  3. Lặp theo từng dòng, cắt chuỗi theo khoảng trắng, chuyển chữ thành số và lưu vào list.

Xong!

Đếm số dòng file text: Bạn xem file text được định dạng theo kiểu nào: Windows \r\n, Unix \n, Mac \r rồi chỉ cần đếm số ký tự, hay đơn giản hơn: len(open('foo.txt').readlines())

Huong Ly viết 12:14 ngày 01/10/2018

huyển chữ thành số và lưu vào lis

Okie bạn, để làm. Mình chỉ hỏi xin cách làm thôi

Henry viết 12:18 ngày 01/10/2018

Mình ngu thuật toán lắm nên cứ làm kiểu thủ công thôi. Bạn tham khảo

lst = []
with open('text.txt') as f:
    for line in f:
        line = line.rstrip() # bỏ đi char \n
        line = line.split() # tách nó ra từng số
        line = list(map(int, line)) # int() từng số
        lst.append(line) # rồi cho nó vào

Ví dụ ở trên thì ở vòng lặp đầu tiên thì

line = '1 2 4 4\n'
sau đó rstrip()
line = '1 2 4 4'
rồi split()
line = ['1', '2', '3', '4']
rồi map() qua int()
line = [1, 2, 3, 4]
add vào lst
[].append([1, 2, 3, 4])
[ [1, 2, 3, 4] ]
Bài liên quan
0