Python đổi tên tệp mà không thay đổi phần mở rộng

Câu trả lời này giả định rằng bạn có một danh sách tên tệp tương đối rõ ràng, tất cả trong một thư mục và tên tệp không có khoảng trắng, tab, dòng mới và các ký tự không hoạt động tốt khác. Các đoạn mã ở đây dành cho trình bao

$ rsync -av --delete ~/my-backup/ ./
2

Bất cứ khi nào bạn thực hiện đổi tên tự động hàng nghìn tệp, luôn có khả năng xảy ra sự cố. Một vấn đề nhân với một trăm nghìn tệp tương đương với một trăm nghìn vấn đề cần khắc phục trước khi bạn có thể thử lại

Bắt đầu bằng cách sao lưu

$ mkdir ~/my-backup
$ rsync -av ./ ~/my-backup/

Bây giờ, nếu bạn làm hỏng thứ gì đó, bạn có thể khôi phục từ bản sao lưu của mình

$ rsync -av --delete ~/my-backup/ ./

Chất lượng triển khai của lệnh

$ rsync -av --delete ~/my-backup/ ./
3 khác nhau giữa các bản phát hành. Có vẻ như đây là một vụ cá cược an toàn rằng bản phát hành càng mới thì càng tốt, vì tệp
$ rsync -av --delete ~/my-backup/ ./
4 mà
$ rsync -av --delete ~/my-backup/ ./
3 sử dụng có lẽ sẽ cập nhật hơn. Nếu bạn có thể, bạn có thể nhận được kết quả đầy đủ hơn [tôi. e. , ít thao tác thủ công hơn] bằng cách sao chép/________ 06-trong các tệp vào máy chạy HĐH có phiên bản ________ 03 tốt hơn

Hãy xác định một hàm

$ rsync -av --delete ~/my-backup/ ./
8 sẽ chạy
$ rsync -av --delete ~/my-backup/ ./
9 trên bất kỳ quả cầu ký tự đại diện nào mà chúng tôi cung cấp cho nó. Hơn nữa, chúng tôi sẽ chạy đầu ra của
$ rsync -av --delete ~/my-backup/ ./
3 thông qua một số biến đổi
$ mkdir ~/my-backup
$ rsync -av ./ ~/my-backup/
11 đơn giản để chuẩn hóa đầu ra của
$ rsync -av --delete ~/my-backup/ ./
3 theo ý thích của chúng tôi

$ mkdir ~/my-backup
$ rsync -av ./ ~/my-backup/
1

Xin thứ lỗi cho

$ mkdir ~/my-backup
$ rsync -av ./ ~/my-backup/
13 vô dụng. Nó được bao gồm cho tính mô đun, vì vậy nếu bạn có các loại tệp trả về nhiều chuỗi mở rộng, bạn có thể sao chép, dán và chỉnh sửa dòng
$ mkdir ~/my-backup
$ rsync -av ./ ~/my-backup/
11 để dịch các bội số đó thành một chuỗi mở rộng mà bạn thích hoặc tùy ý viết hoa nếu muốn, v.v. Trong ví dụ này, các tệp được xác định bởi ________ 03 là
$ mkdir ~/my-backup
$ rsync -av ./ ~/my-backup/
16 sẽ có phần mở rộng là
$ mkdir ~/my-backup
$ rsync -av ./ ~/my-backup/
17, trong khi các tệp được xác định là
$ mkdir ~/my-backup
$ rsync -av ./ ~/my-backup/
18 sẽ có phần mở rộng là _____ 119.
$ mkdir ~/my-backup
$ rsync -av ./ ~/my-backup/
13 chỉ là một trình giữ chỗ không hoạt động ở cuối danh sách chuyển đổi

Điều quan trọng là đảm bảo rằng bạn đã liệt kê tất cả các loại tệp có thể có trong bộ sưu tập của mình mà

$ rsync -av --delete ~/my-backup/ ./
3 trả về nhiều phần mở rộng. Điều này là đơn giản để kiểm tra

$ rsync -av --delete ~/my-backup/ ./
3

Không được có đầu ra. Nếu có đầu ra, bạn cần thêm một dòng

$ mkdir ~/my-backup
$ rsync -av ./ ~/my-backup/
11 khác vào định nghĩa
$ rsync -av --delete ~/my-backup/ ./
8 của mình

Giờ đây, bạn có thể chạy

$ rsync -av --delete ~/my-backup/ ./
8 đối với toàn bộ bộ sưu tập tệp của mình để xem có bao nhiêu tệp nhận dạng được và bao nhiêu tệp không nhận ra

Tôi đang sử dụng nhóm thử nghiệm gồm 152 tệp được chọn yếu. Trên ba hệ thống, tôi đã chạy

$ rsync -av --delete ~/my-backup/ ./
7

Ubuntu 18. 04. 2 LTS

$ rsync -av --delete ~/my-backup/ ./
8

FreeBSD 13. 1

$ rsync -av --delete ~/my-backup/ ./
9

Ubuntu 22. 04 LTS

$ rsync -av --delete ~/my-backup/ ./
0

Lưu ý rằng chúng tôi đã tìm thấy một lỗi trong tệp

$ rsync -av --delete ~/my-backup/ ./
4 được sử dụng bởi tiện ích
$ rsync -av --delete ~/my-backup/ ./
3. May mắn thay, điều này rất dễ sửa trong hàm
$ rsync -av --delete ~/my-backup/ ./
8 của chúng ta

$ rsync -av --delete ~/my-backup/ ./
4

Xuất sắc. Điều quan trọng ở đây là KHÔNG có dấu gạch chéo [hoặc dấu phẩy. ]. Chúng tôi đã tạo một số liệu định lượng thô cho phép chúng tôi xem có bao nhiêu phần trăm tệp được xác định bởi

$ rsync -av --delete ~/my-backup/ ./
3. Cụ thể,
$ rsync -av --delete ~/my-backup/ ./
3 không xác định được 28 trong số 152 tệp hoặc hơn 18%. Chúng tôi có thể tinh chỉnh thêm chức năng
$ rsync -av --delete ~/my-backup/ ./
8 của mình để gán phần mở rộng mặc định cho các tệp thuộc loại mà
$ rsync -av --delete ~/my-backup/ ./
3 không thể xác định

$ rsync -av --delete ~/my-backup/ ./
9

Nếu muốn, chúng ta có thể

$ rsync -av --delete ~/my-backup/ ./
72 liệt kê đó và xem tên tệp cụ thể của các tệp mà
$ rsync -av --delete ~/my-backup/ ./
3 không thể xác định

$ rsync -av --delete ~/my-backup/ ./
0

Trong bộ mẫu [yếu] của tôi, các tệp "không xác định" chủ yếu là các tệp PostScript.

$ rsync -av --delete ~/my-backup/ ./
3 xác định chúng như vậy, nhưng tệp
$ rsync -av --delete ~/my-backup/ ./
4 không có phần mở rộng được chỉ định cho tệp PostScript

Vì vậy, nếu chúng tôi sử dụng

$ rsync -av --delete ~/my-backup/ ./
8 để cung cấp phần mở rộng cho mỗi tệp, các tệp mà
$ rsync -av --delete ~/my-backup/ ./
3 không thể xác định sẽ nhận được phần mở rộng
$ rsync -av --delete ~/my-backup/ ./
78

Việc đổi tên tệp có làm thay đổi phần mở rộng không?

Mặc dù bạn có thể đổi tên nhiều tệp để chuyển đổi phần mở rộng tệp của chúng, nhưng hầu hết sẽ bị "hỏng" khi bạn làm như vậy . Điều này thường là do loại tệp dành riêng cho một định dạng mã nhất định. Trong những trường hợp đó bạn sẽ phải sử dụng chuyển đổi file như trường hợp đổi file ảnh SVG sang JPG hoặc PNG.

Làm cách nào để thay đổi phần mở rộng tệp mà không thay đổi loại tệp?

Bạn cũng có thể thực hiện bằng cách nhấp chuột phải vào tệp chưa mở và nhấp vào tùy chọn “Đổi tên” . Chỉ cần thay đổi phần mở rộng thành bất kỳ định dạng tệp nào bạn muốn và máy tính của bạn sẽ thực hiện công việc chuyển đổi cho bạn.

Làm cách nào để đổi tên tệp trong Python?

Để đổi tên tệp trong Python, hãy sử dụng phương thức rename[] của mô-đun os . Các tham số của phương thức rename[] là địa chỉ nguồn [tên cũ] và địa chỉ đích [tên mới].

Chủ Đề