Di chuyển thư mục Python

Tự động hóa các tác vụ như di chuyển tệp hoặc đổi tên tệp là một kỹ năng cần thiết cho bất kỳ nhà phát triển Python nào. Vì Python là ngôn ngữ lập trình đa năng nên nó cung cấp nhiều khả năng để làm việc và tự động hóa quy trình làm việc của tệp

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để di chuyển tệp, cả một tệp và nhiều tệp, sử dụng các thư viện os, Shutil và Pathlib. Đến cuối hướng dẫn này, bạn sẽ học được những điều sau

  • Làm thế nào để hiểu được đóng cửa. di chuyển(), hệ điều hành. đổi tên () và pathlib. Đường dẫn. đổi tên() chức năng
  • Cách sử dụng Python để di chuyển một tệp sang một thư mục mới
  • Cách sử dụng Python để di chuyển nhiều tệp sang một thư mục mới
  • Cách di chuyển tệp dựa trên điều kiện, chẳng hạn như phần mở rộng tệp

Mục lục

Câu trả lời nhanh. Di chuyển tệp bằng Python

Làm cách nào bạn có thể di chuyển tệp bằng Python?

Cách đơn giản nhất để di chuyển tệp bằng Python là sử dụng phương thức tắt máy. chức năng di chuyển (). Hàm lấy đường dẫn tệp và đích đến nơi bạn muốn chuyển tệp đến. Ví dụ, bạn có thể sử dụng Shutil. di chuyển ('old_location. txt’, ‘new_directory) để di chuyển tệp

Hiểu các chức năng để di chuyển tệp bằng Python

Có ba chức năng chính mà bạn có thể sử dụng để di chuyển tệp bằng Python

  1. os.rename()
  2. shutil.move()
  3. # Understanding the shutil.move() Function
    shutil.move(
       src, 
       dst, 
       copy_function=copy2
    )
    0

Mặc dù hai trong số các chức năng trên được đặt tên theo cách khiến chúng có vẻ như chỉ đổi tên tệp, nhưng chúng thực sự cũng có thể được sử dụng để di chuyển tệp

Hiểu hệ điều hành. đổi tên () Chức năng

Python đi kèm với một hàm dựng sẵn,

# Understanding the shutil.move() Function
shutil.move(
   src, 
   dst, 
   copy_function=copy2
)
1, như một phần của thư viện
# Understanding the shutil.move() Function
shutil.move(
   src, 
   dst, 
   copy_function=copy2
)
2. Như tên ngụ ý, chức năng được sử dụng để đổi tên một tập tin. Tuy nhiên, nó cũng có thể được sử dụng để di chuyển các tập tin. Chúng ta hãy xem những gì tạo nên chức năng

# Understanding the Python os.rename() Function
os.rename(
   src, 
   dst, 
   *, 
   src_dir_fd=None, 
   dst_dir_fd=None
)

Từ đoạn mã trên, bạn có thể thấy rằng hàm chấp nhận bốn đối số, hai trong số đó là tùy chọn. Trong hướng dẫn này, chúng ta sẽ tập trung vào đối số vị trí thứ nhất và thứ hai để sử dụng chúng để di chuyển tệp

Hiểu về cửa chớp. chức năng di chuyển ()

cửa chớp. hàm move() là một hàm chuyên dụng để di chuyển tệp. Do đó, nó có xu hướng là phương pháp di chuyển tệp ưa thích của tôi. Điều này là do nó làm rõ mục đích mã của bạn là di chuyển tệp chứ không phải đổi tên tệp

Chúng ta hãy xem các tham số mà chức năng cung cấp

# Understanding the shutil.move() Function
shutil.move(
   src, 
   dst, 
   copy_function=copy2
)

Với mục đích của hướng dẫn này, chúng ta sẽ chỉ tập trung lại vào hai phần đầu tiên. Những điều này cho phép bạn chỉ định tập tin nào sẽ di chuyển và nơi di chuyển nó đến. Dưới mui xe, cửa chớp. thư viện move() thường sử dụng hệ điều hành. đổi tên() chức năng

Hiểu về pathlib. Đường dẫn. đổi tên () Phương thức

Thư viện Pathlib cung cấp trình bao bọc hướng đối tượng để làm việc với đường dẫn và tệp. Các. phương thức rename() cũng có thể được sử dụng để di chuyển tệp, mặc dù được gọi là rename. Chúng ta hãy xem các chức năng tạo nên phương thức

# Understanding the pathlib.Path.rename() Method
Path.rename(target)

Chúng ta có thể thấy rằng phương thức chỉ nhận một đối số duy nhất - đích. Trong trường hợp này, nó cho phép chúng tôi chuyển đường dẫn đến nơi chúng tôi muốn di chuyển tệp, bao gồm tên tệp của nó

Bây giờ bạn đã hiểu rõ về cách sử dụng ba chức năng, hãy đi sâu vào cách sử dụng chúng để di chuyển tệp

Cách di chuyển một tệp bằng Python

Trong phần này, chúng ta sẽ khám phá cách sử dụng ba thư viện để di chuyển tệp bằng Python. Chúng tôi sẽ đi sâu vào chi tiết hơn trong phần này nhưng sau đó chỉ dựa vào. move() cho phần còn lại của hướng dẫn. Các quy trình phần lớn giống nhau, nhưng vui lòng để lại nhận xét nếu bạn gặp phải bất kỳ vấn đề nào

Đối với tất cả các ví dụ, hãy tưởng tượng rằng chúng ta có một tệp trong một thư mục tại

# Understanding the shutil.move() Function
shutil.move(
   src, 
   dst, 
   copy_function=copy2
)
3. Chúng tôi muốn di chuyển thư mục đến thư mục
# Understanding the shutil.move() Function
shutil.move(
   src, 
   dst, 
   copy_function=copy2
)
4

Cách di chuyển một tệp bằng Python bằng os. đổi tên()

Để sử dụng hệ điều hành. rename() để di chuyển tệp vào thư mục, bạn chỉ cần chuyển vào đường dẫn tệp gốc và đường dẫn tệp mới. Nếu bạn muốn đổi tên tệp trong khi di chuyển tệp, điều đó có thể. Tuy nhiên, hãy giữ nguyên tên cho hướng dẫn này và chỉ cần di chuyển tệp

________số 8_______

Trong ví dụ trên, chúng tôi đã chuyển vào đường dẫn tệp gốc và đường dẫn tệp đích. Ở đích, chúng tôi cũng phải chuyển tên tệp. Trong trường hợp này, chúng tôi giữ nguyên tên tệp để không đổi tên tệp. Tuy nhiên, nếu bạn thay đổi tên tệp, Python sẽ di chuyển và đổi tên tệp

Điều quan trọng cần lưu ý ở đây là nếu một tệp đã tồn tại trên đường dẫn đó, nó sẽ bị ghi đè

Cách di chuyển một tệp bằng Python bằng cách sử dụng Shutil. di chuyển()

cửa chớp. hàm move() hoạt động hơi khác so với hàm trên. Thay vì chuyển tên tệp của đích đến, bạn chỉ cần chuyển vào thư mục mà bạn muốn chuyển tệp của mình đến

Hãy xem cái này trông như thế nào

# How to Move a File with shutil.move()
import shutil

old_file = '/Users/datagy/file.txt'
destination = '/Users/datagy/new_folder/'

shutil.move(old_file, destination)

Trong ví dụ trên, chúng tôi đã chuyển tệp mà chúng tôi muốn di chuyển và thư mục mà chúng tôi muốn di chuyển đến. Bạn cũng có thể chuyển vào đường dẫn tên tệp, điều này sẽ thực hiện được điều tương tự. Điều này là do, Shutil thực sự sử dụng thư viện os dưới mui xe

Cách di chuyển một tệp bằng Python bằng pathlib. Đường dẫn. đổi tên()

Cuối cùng, chúng ta hãy tìm hiểu kỹ về cách di chuyển tệp bằng pathlib. Đường dẫn. phương thức đổi tên (). Vì pathlib cung cấp một trình bao bọc hướng đối tượng để làm việc với các đường dẫn nên chúng tôi sử dụng một phương thức để di chuyển tệp thay vì một hàm

Hãy xem nó trông như thế nào

# How to Move a File with pathlib.Path.rename()
import pathlib

old_file = pathlib.Path('/Users/datagy/file.txt')
destination = pathlib.Path('/Users/datagy/new_folder/file.txt')

old_file.rename(destination)

Trong ví dụ trên, chúng tôi sử dụng các đối tượng Đường dẫn cho cả đường dẫn tệp gốc và đích. Sau đó, chúng tôi có thể sử dụng phương pháp

# Understanding the shutil.move() Function
shutil.move(
   src, 
   dst, 
   copy_function=copy2
)
5 và chuyển vào đích của nơi chúng tôi muốn di chuyển tệp

Cách di chuyển nhiều tệp bằng Python

Để di chuyển nhiều tệp bằng Python, chúng ta có thể sử dụng bất kỳ hàm nào bạn đã học ở trên. Để giữ cho mọi thứ đơn giản, hãy tập trung vào cửa sổ. chức năng di chuyển ()

Để di chuyển nhiều tệp bằng Python, chúng ta thực sự có thể chỉ cần sử dụng vòng lặp for để lặp qua danh sách các tệp. Theo cách này, chúng tôi thực sự di chuyển một tệp tại một thời điểm, nhưng sử dụng vòng lặp for để lặp lại điều này cho tất cả các tệp trong một thư mục

Hãy xem cách chúng ta có thể sử dụng Python để di chuyển nhiều tệp

# How to Move Multiple Files with Python
import os
import shutil

dir = '/Users/datagy/old'
destination = '/Users/datagy/new_folder'

for file in os.listdir(dir):
    file_path = os.path.join(dir, file)
    shutil.move(file_path, destination)

Trong ví dụ trên, trước tiên chúng ta tạo các biến cho thư mục gốc và thư mục đích. Sau đó, chúng tôi lặp qua tất cả các tệp trong một thư mục bằng cách sử dụng hàm

# Understanding the shutil.move() Function
shutil.move(
   src, 
   dst, 
   copy_function=copy2
)
6

Đối với mỗi tệp, chúng tôi tạo đường dẫn đầy đủ đến tệp gốc bằng cách sử dụng hàm

# Understanding the shutil.move() Function
shutil.move(
   src, 
   dst, 
   copy_function=copy2
)
7 và sau đó sử dụng hàm
# Understanding the shutil.move() Function
shutil.move(
   src, 
   dst, 
   copy_function=copy2
)
8 để di chuyển các tệp đến đích

Cách di chuyển tệp có điều kiện trong Python

Trong phần cuối cùng này, bạn sẽ tìm hiểu cách di chuyển tệp có điều kiện bằng Python. Ví dụ: bạn có thể chỉ muốn di chuyển ảnh từ một thư mục sang một thư mục khác, thay vì tất cả các tệp

Chúng tôi có thể làm cho quá trình này trở nên dễ dàng bằng cách lọc danh sách tệp của mình dựa trên tiện ích mở rộng của chúng. Khi chúng ta biết các phần mở rộng, chúng ta có thể sử dụng các câu lệnh if-else của Python. Hãy xem cách chúng ta có thể di chuyển tệp có điều kiện bằng Python

# How to Move Files Conditionally with Python
import os
import shutil

dir = '/Users/datagy/old'
destination = '/Users/datagy/new_folder'
extension = '.jpg'

for file in os.listdir(dir):
    if os.path.splitext(file)[-1] == extension:
        shutil.move(os.path.join(dir, file), destination)

Hãy chia nhỏ những gì chúng ta đang làm trong khối mã ở trên

  1. Chúng tôi khai báo các biến cho thư mục, đích và phần mở rộng mà chúng tôi muốn di chuyển
  2. Sau đó, chúng tôi lặp lại các tệp trong thư mục để xem phần mở rộng có bằng với phần mở rộng mà chúng tôi muốn di chuyển không. Chúng tôi nhận được phần mở rộng bằng cách truy cập giá trị cuối cùng trong kết quả tách văn bản
  3. Nếu tệp đáp ứng điều kiện của chúng tôi, chúng tôi sẽ di chuyển tệp đó bằng cách sử dụng Shutil. chức năng di chuyển ()

Tương tự, bạn có thể sử dụng quy trình này để di chuyển các tệp có kích thước nhất định

Phần kết luận

Trong hướng dẫn này, bạn đã học cách sử dụng Python để di chuyển một tệp hoặc nhiều tệp. Bạn đã học cách sử dụng các hàm shutil.move(), os.rename()

# Understanding the shutil.move() Function
shutil.move(
   src, 
   dst, 
   copy_function=copy2
)
0 để di chuyển tệp. Từ đó, bạn đã xem qua một số ví dụ về việc sử dụng các hàm này để di chuyển một tệp. Sau đó, bạn đã học cách di chuyển tất cả các tệp trong một thư mục sang một thư mục mới. Cuối cùng, bạn đã học cách di chuyển tệp dựa trên các điều kiện, chẳng hạn như phần mở rộng của tệp