Cách đổi tên thư mục trong python | Laptrinhcanban.com

Cách đổi tên thư mục trong python

Hướng dẫn cách xử lý file trong Python. Bạn sẽ học được cách đổi tên thư mục trong python bằng hàm rename() trong module os, cũng như bằng phương thức Path.rename() trong module pathlib và ứng dụng chúng để đổi tên thư mục hàng loạt trong python sau bài học này.

Đổi tên thư mục trong python | hàm rename()

Để đổi tên thư mục trong python, chúng ta sử dụng hàm rename() trong module os với cú pháp sau đây:

os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

Thông thường chúng ta bỏ đi phần lớn các đối số trong hàm hoặc chỉ dùng cú pháp rút gọn sau đây:

os.rename(src, dst)

Trong đó:

  • src là đường dẫn của thư mục cần đổi tên.
  • dst là đường dẫn của thư mục sau khi đổi tên. Đường dẫn này có thể cùng hoặc khác thư mục mẹ so với đường dẫn trước khi đổi tên.

Ví dụ, chúng ta đổi tên thư mục trong python như sau:

import os

oldpath = './data/user'
newpath = './data/user_infor'
os.rename(oldpath, newpath)

Khi đó thư mục user (nếu tồn tại trước đó) sẽ chuyển thành thư mục user_infor trong cùng thư mục data.

Khi đổi tên thư mục trong python, đường dẫn của thư mục mẹ sau khi đổi tên có thể khác thư mục mẹ so với đường dẫn trước khi đổi tên.

import os

oldpath = './data/user'
newpath = './client/user_infor'
os.rename(oldpath, newpath)

Khi đó, hàm rename() sẽ có thêm tác dụng di chuyển thư mục chỉ định sang một thư mục mẹ khác với một tên khác.

Lưu ý, nếu như thư mục cần đổi tên không tồn tại, hoặc là đường dẫn chứa thư mục sau khi đổi tên không tồn tại, lỗi FileNotFoundError sẽ bị trả về:

FileNotFoundError: [WinError 2] The system cannot find the folder specified: '/client/user_infor'

Đổi tên thư mục trong python | phương thức Path.rename()

Chúng ta cũng có thể sử dụng phương thức Path.rename() tích hợp trong module pathlib để đổi tên thư mục trong python, với cú pháp sau đây:

path.rename(target)

Trong đó pathtarget là các path object instance được tạo ra từ class pathlib.Path(), chứa thông tin về đường dẫn trước và sau khi đổi tên của thư mục.

Cách sử dụng phương thức này để đổi tên thư mục cũng khá đơn giản. Trước tiên chúng ta tạo ra một instance mang thông tin đường dẫn của thư mục cần đổi tên, sau đó xử dụng phương thức rename() với instance này để đổi tên thư mục trong python, với đối số là một instance khác chứa đường dẫn của thư mục sau khi đổi tên.

import pathlib

oldpath_ins = pathlib.Path('./data/user')
newpath_ins = pathlib.Path('./data/user_infor')
oldpath_ins.rename(newpath_ins)

Cũng giống với hàm rename() trong module os, chúng ta có thể chỉ định đường dẫn của thư mục sau khi đổi tên có thể khác thư mục so với đường dẫn trước khi đổi tên. Khi đó thư mục được chỉ định sẽ được di chuyển sang một thư mục mới với một tên khác.

import pathlib

oldpath_ins = pathlib.Path('./data/user')
newpath_ins = pathlib.Path('./client/user_infor')
oldpath_ins.rename(newpath_ins)

Đổi tên thư mục hàng loạt trong python

Sau đây Kiyoshi sẽ hướng dẫn bạn cách đổi tên hàng loạt các thư mục con đã có sẵn trong một thư mục mẹ một cách nhất quán, bằng cách ứng dụng hàm rename() mà bạn vừa học ở trên.
Ví dụ: Bạn có một thư mục chứa các thư mục con và muốn đổi tên chúng theo cách nhất quán bằng cách thêm chuỗi image_ vào trước tên thư mục con:

./camera/210501 -> ./camera/image_210501
./camera/210502 -> ./camera/image_210502
./camera/210503 -> ./camera/image_210503

Để đổi tên hàng loạt các thư mục trong một thư mục một cách nhất quán, hãy dùng tới hàm tự tạo sau đây:

import os

def rename_folder(folder_dir,change_str):
for folder in os.listdir(folder_dir):
old_folder_path= os.path.join(folder_dir,folder)
if os.path.isdir(old_folder_path):
old_folder_name=os.path.basename(old_folder_path)
new_folder_name= change_str+old_folder_name
new_folder_path=os.path.join(folder_dir,new_folder_name)
os.rename(old_folder_path,new_folder_path)

Sau đó, bạn có thể sử dụng hàm này như sau:

folder_dir ="./camera"
change_str="image_"

rename_folder(folder_dir,change_str)

Hàm trên sẽ giúp thêm chuỗi ký tự image_ vào trước tất cả tên các thư mục có trong thư mục camera.

Bạn có thể thay thế chuỗi ký tự thêm vào thư mục bằng cách thay đổi giá trị của biến change_str.

change_str="tokyo_"

Tổng kết hoặc thực hành

Trên đây Kiyoshi đã hướng dẫn bạn về cách đổi tên thư mục trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

hoặc hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.