Nếu bạn không nhớ sử dụng biểu thức thông thường, sau đó chức năng này sẽ cung cấp cho bạn nhiều năng lượng trong các tập tin đổi tên:
import re, glob, os
def renamer(files, pattern, replacement):
for pathname in glob.glob(files):
basename= os.path.basename(pathname)
new_filename= re.sub(pattern, replacement, basename)
if new_filename != basename:
os.rename(
pathname,
os.path.join(os.path.dirname(pathname), new_filename))
Vì vậy, trong ví dụ của bạn, bạn có thể làm (giả sử đó là thư mục hiện nơi các tập tin là):
renamer("*.doc", r"^(.*)\.doc$", r"new(\1).doc")
nhưng bạn cũng có thể quay trở lại với tên tập tin ban đầu:
renamer("*.doc", r"^new\((.*)\)\.doc", r"\1.doc")
và hơn thế nữa.
Biểu tượng '%' được sử dụng như thế nào trong lệnh 'os.path.join (dir, titlePattern% title + ext) '? Tôi biết '%' là cho hoạt động modulo và cũng được sử dụng như một toán tử định dạng. Nhưng thông thường nó được theo sau bởi 's' hoặc' f' để chỉ định định dạng. Tại sao không có gì (không gian) ngay sau khi '%' trong lệnh được nói? –
@ShashankSawant Nó thực sự là một nhà điều hành định dạng. Xem [Hoạt động định dạng chuỗi] (https://docs.python.org/2/library/stdtypes.html#string-formatting) để biết tài liệu và cách sử dụng mẫu. – DzinX