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]

theo đó, không nhất thiết phải có tham biến tên_tệp_đích. Nếu không có tên_tệp_đích thì tên_tệp_đích được lấy mặc định là  tên_tệp_nguồn_copy.  Nếu đã có tệp  tên_tệp_nguồn_copy thì tệp này sẽ bị ghi đè.

0 Xem trả lời
Hỏi chi tiết
58
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Dưới đây là một chương trình Python đơn giản để thực hiện việc sao chép tệp theo yêu cầu của bạn. Chương trình này sẽ đọc tệp nguồn và sao chép nội dung của nó vào tệp đích. Nếu không có tên tệp đích được cung cấp, chương trình sẽ tạo một tệp đích với tên mặc định là `tên_tệp_nguồn_copy`.

```python
import sys
import os

def copy_file(source_file, dest_file=None):
# Nếu không có tên tệp đích, tạo tên tệp đích mặc định
if dest_file is None:
dest_file = source_file + "_copy"

try:
# Mở tệp nguồn để đọc
with open(source_file, 'rb') as src:
# Mở tệp đích để ghi (ghi đè nếu đã tồn tại)
with open(dest_file, 'wb') as dst:
# Đọc và ghi từng khối dữ liệu
while True:
chunk = src.read(1024)
if not chunk:
break
dst.write(chunk)
print(f"Đã sao chép {source_file} thành {dest_file}")
except FileNotFoundError:
print(f"Tệp nguồn {source_file} không tồn tại.")
except Exception as e:
print(f"Đã xảy ra lỗi: {e}")

def main():
# Kiểm tra số lượng tham số dòng lệnh
if len(sys.argv) < 2:
print("Sử dụng: cpy tên_tệp_nguồn [tên_tệp_đích]")
return

source_file = sys.argv[1]
dest_file = sys.argv[2] if len(sys.argv) > 2 else None

copy_file(source_file, dest_file)

if __name__ == "__main__":
main()
```

### Hướng dẫn sử dụng chương trình:
1. Lưu mã nguồn trên vào một tệp, ví dụ `cpy.py`.
2. Chạy chương trình từ dòng lệnh với cú pháp:
```sh
python cpy.py tên_tệp_nguồn [tên_tệp_đích]
```
- `tên_tệp_nguồn`: tên tệp bạn muốn sao chép.
- `[tên_tệp_đích]`: tên tệp đích (tùy chọn). Nếu không cung cấp, chương trình sẽ tạo tệp đích với tên `tên_tệp_nguồn_copy`.

### Ví dụ:
- Sao chép tệp `data.txt` thành `data_copy.txt`:
```sh
python cpy.py data.txt
```
- Sao chép tệp `data.txt` thành `backup.txt`:
```sh
python cpy.py data.txt backup.txt
```

Chương trình này sẽ xử lý các lỗi cơ bản như tệp nguồn không tồn tại và các lỗi khác trong quá trình sao chép.

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

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
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×