Bài tập  /  Bài đang cần trả lời

Giải bài có thưởng!

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     

0 trả lời
Hỏi chi tiết
26
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.

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập liên quan
Bài tập Tin học Lớp 8 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo