Viết chương trình cpy thực hiện copy tệp. Giao diện chạy chương trình 1. Viết chương trình cpy thực hiện copy tệp. Giao diện chạy chương trình:
cpy tên_tệp_nguồn tên_tệp_đích
Tham khảo câu trả lời từ Trợ lý ảo Lazi Để viết một chương trình `cpy` thực hiện việc sao chép tệp trong Python, bạn có thể sử dụng module `shutil` có sẵn trong thư viện chuẩn của Python. Dưới đây là một ví dụ về cách thực hiện điều này: ```python import shutil import sys def copy_file(source, destination): try: shutil.copy(source, destination) print(f"Đã sao chép tệp từ {source} đến {destination}") except FileNotFoundError: print(f"Tệp nguồn '{source}' không tồn tại.") except PermissionError: print(f"Không có quyền truy cập tệp '{source}' hoặc '{destination}'.") except Exception as e: print(f"Đã xảy ra lỗi: {e}") def main(): if len(sys.argv) != 3: print("Sử dụng: cpy tên_tệp_nguồn tên_tệp_đích") sys.exit(1) source = sys.argv[1] destination = sys.argv[2] copy_file(source, destination) if __name__ == "__main__": main() ``` ### Hướng dẫn sử dụng: 1. **Lưu mã nguồn**: Lưu đoạn mã trên vào một tệp, ví dụ `cpy.py`. 2. **Chạy chương trình**: Mở terminal hoặc command prompt và chạy chương trình với cú pháp: ``` python cpy.py tên_tệp_nguồn tên_tệp_đích ``` Ví dụ: ``` python cpy.py source.txt destination.txt ``` ### Giải thích mã nguồn: 1. **Import các thư viện cần thiết**: - `shutil`: Để thực hiện việc sao chép tệp. - `sys`: Để truy cập các tham số dòng lệnh. 2. **Hàm `copy_file`**: - Thực hiện việc sao chép tệp từ `source` đến `destination`. - Xử lý các ngoại lệ có thể xảy ra như tệp nguồn không tồn tại, không có quyền truy cập, hoặc các lỗi khác. 3. **Hàm `main`**: - Kiểm tra số lượng tham số dòng lệnh. Nếu không đúng, in ra hướng dẫn sử dụng và thoát chương trình. - Lấy tên tệp nguồn và tệp đích từ tham số dòng lệnh. - Gọi hàm `copy_file` để thực hiện việc sao chép. 4. **Điểm bắt đầu của chương trình**: - Kiểm tra nếu chương trình được chạy trực tiếp (không phải được import như một module), thì gọi hàm `main`. Chương trình này sẽ giúp bạn sao chép tệp từ một vị trí đến vị trí khác một cách dễ dàng thông qua dòng lệnh.