Nhập xuất dữ liệu trong Python

Một chương trình máy tính thường cần giao tiếp với người dùng bên ngoài bằng cách lấy dữ liệu đầu vào (dữ liệu có thể là nhập từ bàn phím, từ 1 file) và hiển thị kết quả của dữ liệu ra màn hình cho người dùng. Hướng dẫn này sẽ giới thiệu cho bạn về cách nhập/xuất dữ liệu cơ bản của Python.

Nhập dữ liệu từ bàn phím

Cú pháp: input(<prompt>) Lệnh input() tạm dừng thực thi chương trình để cho phép người dùng nhập liệu từ bàn phím. Khi người dùng nhấn phím Enter, tất cả các ký tự đã nhập sẽ được đọc và trả về dưới dạng một chuỗi.

  • Nhận dữ liệu từ người dùng và hiển thị (dữ liệu có kiểu string)

    age = input("Your age? ") #Giả sử nhập dữ liệu là `20`
    print("Your age", age) #Kết quả: Your age 20
  • Nhận dữ liệu vào và lưu dưới dạng danh sách số

    numbers = list(map(int, input().split())) #Nhập 1 2 3 4 5
    print (numbers) #Kết quả: [1, 2, 3, 4, 5]
  • Nhận nhiều dữ liệu đầu vào trên 1 dòng

    x, y, z, n = (int(input()) for _ in range(4)) #Nhập từng biến số
    print (z) #In kết quả của biến z

Hàm print() trong Python

  • Hàm print() được dùng để xuất một chuỗi hay bất kỳ đối tượng nào, các đối tượng sẽ được chuyển thành chuỗi trước khi được hiển thị lên màn hình.
  • In một chuỗi ra màn hình

    print("Hello World") #Kêt quả: Hello World
  • In nhiều hơn một đối tượng:

    print("Hello", "how are you?") #Kêt quả: Hello how are you?
  • In một bộ tuples:

    x = ("apple", "banana", "cherry")
    print(x) #Kêt quả: ('apple', 'banana', 'cherry')
  • In hai chuỗi và chỉ định dấu phân tách

    print("Hello", "how are you?", sep="---") #Kêt quả: Hello---how are you?
  • Một số cách khác

    # Hello A and B.
    print("Hello {} and {}.".format("A", "B")) 
    
    # Hello A and B.
    b = "B"
    print(f'Hello {"A"} and {b}.')
    
    # This is a part of sentence. This is other part.
    print('This is a part of sentence.'
        'This is other part.')
  • Nối chuỗi với biến: Để nối 1 chuỗi với 1 biến hay một biểu thức ta sử dụng dấu ,

    age = 20 # Khai báo biến
    print("Your age", age) #Kêt quả: Your age 20

Escape Sequence: Ký tự đặt biệt trong chuỗi

  • Escape Sequence là một là kí tự đặc biệt trong Python. Bắt đầu với một dấu \. Ví dụ để in ra chuỗi có chứa ký hiệu dấu nháy kép, ta sử dụng \"Nội dung\"

    print("Website \"phannhatchanh.com\" ") # Website "phannhatchanh.com"
  • Các ký tự đặc biệt khác:

    • \n ngắt xuống dòng và bắt đầu dòng mới.
    • \t đẩy nội dung phía sau nó cách 1 tab.
    • \a chuông cảnh báo.
    • \b xóa bỏ khoảng trắng phía trước nó.
    • \f khoảng cách trong chuỗi.
    • \nnn Ký hiệu bát phân, trong đó n nằm trong phạm vi 0-7
    • \xnn Ký hiệu thập lục phân, trong đó n nằm trong phạm vi 0-9, a-f hoặc A-F

Xử lý file trong Python

Mở File

  • Cú pháp: file object = open(filename [, accessmode][, buffering])
  • Các mode (chế độ) mở một file

    • r Mở file chỉ để đọc
    • r+ Mở file để đọc và ghi
    • a Mở file để ghi thêm vào cuối file, nếu không tìm thấy file sẽ tạo mới một file để ghi mới.
    • a+ Mở file để đọc và ghi thêm vào cuối file, nếu không tìm thấy file sẽ tạo mới một file để đọc và ghi mới.
    • w Mở file để ghi. Nếu file đã tồn tại thì sẽ bị xóa hết nội dung và ghi mới, ngược lại sẽ tạo file mới.
    • w+ Mở file để đọc và ghi. Nếu file đã tồn tại thì sẽ bị xóa hết nội dung và ghi mới, ngược lại sẽ tạo file mới.
  • Thuộc tính của File:

    • file.closed Trả về True nếu file đã đóng, ngược lại là False
    • file.mode Trả về chế độ truy cập của file đang được mở
    • file.name Trả về tên của file
    • Ví dụ:

      file = open("vidu.txt", "wb") #Mở file vidu.txt
      print ("Tên của file là: ", file.name) #Tên của file là: vidu.txt
      print ("File có đóng không?:", file.closed) #File có đóng hoặc không?: False
      print ("Chế độ mở file:",file.mode) #Chế độ mở file: wb

Đóng File

  • Cú pháp: fileObject.close()

    file = open("vidu.txt", "r") #Mở file
    file.close() #Đóng file

Ghi File

  • Cú pháp: fileObject.write(string)

    file = open("vidu.txt", "wb") #Mở file vidu.txt
    file.write("Python là ngôn ngữ lập trình") #Nội dung ghi
    file.close() #Đóng file

Đổi tên File

  • Cú pháp: os.rename("<tên file hiện tại>", "<tên file mới>")

    # os là một module tích hợp sẵn với Python.
    # Module này cho phép chúng ta thao tác với tệp và thư mục.
    import os
    # Đổi tên vidu.txt thành baitap.txt
    os.rename("vidu.txt", "baitap.txt")

Xóa File

  • Cú pháp: os.remove("<tên file>")

    # os là một module tích hợp sẵn với Python.
    # Module này cho phép chúng ta thao tác với tệp và thư mục.
    import os
    os.remove("vidu.txt") #Xóa file vidu.txt

Ví trí File

  • tell() cho biết vị trí con trỏ hiện tại bên trong file.
  • seek(offset[, from]) thay đổi vị trí con trỏ hiện tại bên trong file.

    • Tham số offset là chỉ số byte để được di chuyển.
    • Tham số from xác định vị trí tham chiếu mà từ đó byte được di chuyển. Nếu from là 0 thì sử dụng phần đầu file như là vị trí tham chiếu. Nếu from là 2 thì sử dụng phần cuối file như là vị trí tham chiếu.
# Mở file
file = open("vidu.txt", "r+")
str = file.read(10);
print ("Chuỗi đã đọc là:", str) #Chuỗi đã đọc là: Python là

# Kiểm tra con trỏ hiện tại
vitri = file.tell();
print ("Con trỏ hiện tại:", vitri) #Con trỏ hiện tại: 10

# Đặt lại vị trí con trỏ tại vị trí đầu file
vitri = file.seek(0, 0);
str = file.read(10);
print ("Chuỗi đã đọc là:", str) #Chuỗi đã đọc là: Python là

# Đóng file
file.close()

Tham khảo

© 2019-2020 Phan Nhật Chánh