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
đó path
và target
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.
Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="//creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a> và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="//www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="//images.dmca.com/Badges/DMCABadgeHelper.min.js">
Bài viết liên quan
Cách di chuyển file trong python
Cách copy file trong python
Đọc file trong python
Lấy kích thước file và thư mục trong python
Đổi tên file trong Python
Lấy danh sách tên file và thư mục trong python
Lấy danh sách tên file và thư mục theo điều kiện trong python
Cách lấy thông tin file trong python