Python đổi tên tệp dựa trên tên thư mục

Mặc dù có nhiều hướng dẫn về cách đổi tên tệp bằng Python, nhưng hầu hết không đi sâu vào cách tạo logic linh hoạt để điều chỉnh công việc đổi tên tệp hàng loạt đó theo nhu cầu của bạn. Đây là tình huống tôi gặp phải gần đây, một yêu cầu có vẻ đơn giản giúp đổi tên vài trăm tệp trong một thư mục. Tuy nhiên, không phải tất cả việc đổi tên đều theo một khuôn mẫu nhất định. Nó cũng không tuân theo bất kỳ khuôn mẫu thực tế nào, vì vậy việc sử dụng regex có lẽ sẽ không giúp ích gì. Điều này kêu gọi một tập lệnh tùy chỉnh để giúp đỡ một kỹ sư đồng nghiệp

Vấn đề

Vấn đề được đưa ra là trong quá trình tự động hóa, hàng trăm tệp đã được tạo nhưng sử dụng sai tên. Tất cả những thứ này bây giờ đều cần thay đổi. Tên tệp bên trái cần phải giống tên tệp bên phải [đây là một ví dụ nhỏ nhưng có hàng trăm tệp]. Như bạn có thể thấy, đây không phải là công việc tìm và thay thế ngay lập tức, chúng tôi sẽ cần một số logic để khớp cụm từ tìm kiếm với cụm từ thay thế. Ví dụ: nếu tên tệp bao gồm X thì hãy thay thế bằng Y. Để cắt định danh ở đầu tên tệp, chúng tôi sẽ sử dụng cắt chuỗi

Tên tệp trước [trái] và chúng trông như thế nào sau [phải]

Dung dịch

Tập lệnh này sử dụng mô-đun os. Chúng tôi cung cấp một đường dẫn thư mục và sau đó lặp qua tất cả các tệp trong đó, đổi tên bằng các thay thế trong đó tên tệp chứa cụm từ tìm kiếm

đổi tên. py ______0

Thành công. Tất cả các tệp đã được đổi tên theo logic được áp dụng và hiện có định dạng như ở bên phải của hình ảnh được hiển thị trước đó. Logic này cũng sẽ đổi tên bất kỳ thư mục con nào trong thư mục nếu bạn muốn đổi tên thư mục thay vì tệp. Trong tập lệnh này, tôi cũng đã tách tệp name khỏi tệp extension, vì vậy nếu bạn muốn thay đổi hàng trăm tệp txt sang định dạng csv, bạn có thể thực hiện điều đó chỉ với một lần thay đổi new_name = os.path.join[path, prefix + postfix + ".csv"]

Nếu bạn muốn chạy thử tập lệnh này, hãy tải xuống thư mục kiểm tra, sau đó giải nén nội dung và đặt thư mục 'TestFolder' vào thư mục Tài liệu của bạn để đảm bảo thư mục đó có tên 'TestFolder'. Sau đó cập nhật đường dẫn cho hàm rename_files với tên người dùng của bạn trước khi chạy 😄

Thưởng. Đổi tên hàng loạt đệ quy

Bạn có thể đang nghĩ, nhưng nếu tôi có các tệp trong các thư mục trong các thư mục thì sao? . Giả sử chúng ta có các thư mục A, B và C trong thư mục TestFolder

Các thư mục con trong các thư mục - chúng tôi cần đệ quy

Bây giờ hãy xem hàm đệ quy mà chúng ta sẽ chạy trên đường dẫn thư mục TestFolder

recursive-renamemer. py ______1

Bây giờ chúng ta có thể thấy mọi tệp trong mọi thư mục con được đổi tên trong một thao tác. Điều này cũng sẽ hoạt động với mọi độ sâu của cây thư mục. thư mục con trong thư mục con trong thư mục con. mọi thứ. Không phải là đệ quy tuyệt vời?

Tất cả các tệp được đổi tên trong mọi thư mục

Thích nghi với nhu cầu của bạn

Chúng tôi đây rồi, hai chức năng có thể mở rộng và có thể thích ứng ngắn cung cấp cho chúng tôi mọi thứ chúng tôi cần để hoàn thành công việc. Đồng nghiệp của tôi chắc chắn rất hài lòng với kết quả này, họ nói rằng nó hoạt động như một giấc mơ. Bạn có thể dễ dàng điều chỉnh các chức năng này theo nhu cầu của riêng mình bằng cách thay đổi hoặc thêm vào logic điều kiện trong vòng lặp bên trong xử lý từng tên tệp. Tập lệnh này không chỉ áp dụng cho việc đổi tên tệp có điều kiện mà còn xóa tệp có điều kiện. Bạn có thể sử dụng os.remove[file_path] thay vì os.rename[file_path, new_name] chúng tôi đã sử dụng

Cảm ơn rất nhiều vì đã đọc, đây là một bài viết rất ngắn về cách đổi tên hàng loạt tệp trong thư mục một cách hiệu quả bằng Python. Nếu bạn thích bài viết này, hãy nhớ xem các bài viết khác trên trang web. Nếu bạn có bất kỳ câu hỏi nào, vui lòng để lại nhận xét 👍 Chúc một ngày tốt lành

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].

Bạn có thể tự động đổi tên tệp không?

Có nhiều công cụ có thể đổi tên tệp; . Power Automate is a robust, free, low-code tool can be used to automate tasks in an operating environment comprised of Windows, Microsoft 365 and Azure.

Làm cách nào để lấy tên tệp từ đường dẫn trong Python?

Chương trình Python để lấy tên tệp từ đường dẫn tệp .
nhập os # tên tệp có phần mở rộng file_name = os. con đường. tên cơ sở ['/root/tệp. ext'] # tên tệp không có phần mở rộng print[os. con đường. splitext[file_name][0]] Chạy mã
nhập os print[os. con đường. splitext[file_name]].
từ pathlib nhập Đường dẫn in [Đường dẫn ['/ root/file. máy lẻ']. thân cây]

Chủ Đề