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

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

Phan Nhật Chánh

Chánh14 tháng 09, 2020

6 min read
·
views
·
likes

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
    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]
    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
    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
    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?
    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')
    x = ("apple", "banana", "cherry") print(x) #Kêt quả: ('apple', 'banana', 'cherry')

    Tuple trong Python là một kiểu dữ liệu dùng để lưu trữ các đối tượng không thay đổi về sau (giống như hằng số).

  • 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?
    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.')
    # 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
    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"
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

Để biết thêm về cách thao tác với các file như: txt, json, csv, xlsx, xml bạn tham khảo thêm bài thao tác với file trong Python.

Mở File

  • Cú pháp: file object = open(file_name [, access_mode][, 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
    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
    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
    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")
    # 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
    # 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()
# 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()

Tài liệu tham khảo