Đôi khi chúng ta cần di chuyển toàn bộ thư mục hoặc có thể có một danh sách các thư mục như vậy nói A cùng với nội dung con, tệp và thư mục con của nó sang một thư mục đích khác B. Mặc dù điều này có thể được thực hiện thủ công bằng cách 'cắt' và 'dán' nhưng nếu có hàng trăm hoặc hàng nghìn thư mục bạn muốn di chuyển thì sao, chưa kể đến lỗi của con người. Hãy xem cách thực hiện điều này một cách dễ dàng trong python với vài dòng mã bằng cách sử dụng mô-đun Shutil
mô-đun đóng cửa
Shutil cung cấp một số chức năng cấp cao giúp tự động hóa quá trình sao chép, di chuyển hoặc xóa tệp hoặc thư mục bất kể nền tảng được sử dụng. Nó đi kèm với các mô-đun tiện ích tiêu chuẩn của Python, vì vậy không cần cài đặt riêng
Nó có cửa chớp. move[] phương thức di chuyển đệ quy một tệp hoặc thư mục [nguồn] cùng với nội dung phụ của nó đến một vị trí khác [đích] và trả về đích. Nếu thư mục đích đã tồn tại thì nguồn sẽ được di chuyển vào bên trong thư mục đó, nếu không, một thư mục mới sẽ được tạo trước khi di chuyển. Nếu đích đã tồn tại nhưng không phải là một thư mục thì nó có thể bị ghi đè hoặc gây ra lỗi tùy thuộc vào hệ điều hành. đổi tên [] thông số kỹ thuật
cú pháp. đóng cửa. di chuyển [nguồn, đích, copy_function = copy2]
Giả sử cấu trúc của thư mục trông như thế này -
trong đó 'dest' là thư mục đích của chúng tôi
Làm cách nào để di chuyển danh sách các thư mục có thư mục con bằng Python?
ví dụ 1. Dựa trên danh sách thư mục
Ở đây chúng tôi đã tạo một danh sách các thư mục mà chúng tôi muốn di chuyển. Để đơn giản, tất cả các thư mục nằm trong cùng một thư mục, bạn cũng có thể di chuyển từ các thư mục cơ sở khác nhau.
Python3
# import shutil module
import
shutil
# import os module
import
os
# base path
base_path
=
# import shutil module
0
# import shutil module
1
# import shutil module
2__=
# import shutil module
4# import shutil module
5# import shutil module
6# import shutil module
7# import shutil module
6# import shutil module
9# import shutil module
6import
1import
2
import
3
import
4=
import
6import
7import
8
import
9shutil
0shutil
1import
8
import
9shutil
4
shutil
5
shutil
6 shutil
7____38 shutil
9
# import os module
0# import os module
1
# import os module
0# import os module
3
# import os module
0# import os module
5____9 # import os module
7
# import os module
0# import os module
9
# import os module
0import
1 import
2
import
3____24
import
3____26
import
9shutil
0____29import
8
import
9shutil
4
đầu ra
Trước khi di chuyển thư mục
[‘dest’, ‘test1’, ‘test2’, ‘test3’, ‘test4’, ‘test5’, ‘web_tools_express’, ‘web_tools_html’, ‘web_tools_node’, ‘web_tools_react’]
Sau khi di chuyển thư mục
[‘dest’, ‘test1’, ‘test3’, ‘web_tools_express’, ‘web_tools_html’, ‘web_tools_node’, ‘web_tools_react’]
Hãy kiểm tra thư mục đích, đó là
Như bạn có thể thấy, chúng tôi đã chuyển toàn bộ thư mục và nội dung của chúng sang thư mục đích [đường dẫn tuyệt đối trỏ đến thư mục 'dest']
ví dụ 2. Dựa trên mẫu
Giả sử chúng tôi muốn di chuyển các thư mục theo một mẫu tên cụ thể đến đích của chúng tôi. Hãy di chuyển tất cả các thư mục có tên bắt đầu bằng 'web'. Bạn có thể sử dụng bất kỳ mẫu nào theo nhu cầu của bạn. Đây sẽ là trường hợp sử dụng thực tế hơn khi chúng tôi có hàng trăm thư mục
Python3
# import shutil module
import
shutil
# import os module
import
os
# base path
base_path
=
# import shutil module
0
# base path
3
# base path
4=
# base path
6
import
3
import
4=
import
6import
7import
8
import
9shutil
0shutil
1import
8
import
9shutil
4
shutil
6 shutil
7____38 =
2
# import os module
0____94
# import os module
0=
6
# import os module
0import
1 =
9____100# import shutil module
01
import
3____103
import
3______45____9 # import os module
7
import
3____24
import
3____26
import
9shutil
0____29import
8
import
9shutil
4
đầu ra
Trước khi di chuyển thư mục
[‘dest’, ‘test1’, ‘test3’, ‘web_tools_express’, ‘web_tools_html’, ‘web_tools_node’, ‘web_tools_react’]
Sau khi di chuyển thư mục
[‘dest’, ‘test1’, ‘test3’]
Hãy kiểm tra thư mục đích, đó là
ví dụ 3. Dựa vào thời gian tạo
Python3
# import shutil module
import
shutil
# import os module
import
os
# base path
base_path
=
# import shutil module
0
# base path
3
# base path
4=
# base path
6
import
3
import
4=
import
6import
7import
8
import
1 # import shutil module
39 # import shutil module
40
# import os module
0# import shutil module
42
import
9shutil
0shutil
1import
8
import
9# import shutil module
48shutil
6 # import shutil module
50shutil
8 # base path
6import
1 # import shutil module
54
shutil
6 shutil
7____38 =
2
# import os module
0# import shutil module
60
# import os module
0# import shutil module
62____9 # import os module
7
# import os module
0import
1 # import shutil module
67
import
3______169____9 # import shutil module
71
import
3______173=
# import shutil module
75
import
3import
1 # import shutil module
78# import shutil module
79# import shutil module
80# import shutil module
81 # import shutil module
82# import shutil module
83# import shutil module
84 # import shutil module
85# import shutil module
86# import shutil module
87
# import shutil module
88# import shutil module
03
# import shutil module
88# import os module
5=
# import os module
7
# import shutil module
88import
4
# import shutil module
88import
6
import
9shutil
0____29import
8
import
9# import shutil module
48shutil
6 # import shutil module
50shutil
8 # base path
6import
1 # import shutil module
54
đầu ra
Before moving directories: ['btechmarksheet_files', 'chromedriver_win32 [1]', 'dest', 'How to make a fully transparent window with PyGame _-Write_files', 'gfg', 'tuhin • gfg photos and videos_files'] After moving directories: ['dest']
Giải trình
Ở đây chúng tôi đã tính toán sự khác biệt giữa thời gian tạo thư mục và ngày hôm nay và nếu sự khác biệt lớn hơn 7 ngày thì chúng tôi có thể di chuyển thư mục đó đến đích nếu không thì bỏ qua điều đó