Hướng dẫn os system copy file python - sao chép tập tin hệ thống os python
Giới thiệuKhi nói đến việc sử dụng Python để sao chép các tệp, có hai cách chính: sử dụng mô -đun 7 hoặc mô -đun 8. Tất cả các phương thức 8 chúng tôi hiển thị ở đây là các phương thức cho phép chúng tôi thực thi các lệnh shell từ mã python của chúng tôi, chúng tôi sẽ sử dụng để thực thi lệnh 0 (windows) hoặc lệnh 1 (UNIX). Show
Bạn sẽ nhận thấy rằng nhiều trong số các phương pháp này, trong cả mô -đun 7 và mô -đun 8, có chức năng rất giống nhau (không đáng ngạc nhiên), nhưng Tốt.Sao chép các tệp với mô -đun ShutilMô -đun SHOTIL cung cấp một số phương thức cấp cao để sao chép các tệp. Dưới đây là những cái chính: copyfilePhương thức này sao chép nội dung của một tệp vào tệp khác. Điểm đến được cung cấp cho nó phải là một tệp có thể ghi và có một tên khác với tệp nguồn. Nếu tên giống nhau thì nó sẽ tạo ra lỗi. Nếu tệp đích đã tồn tại, nó sẽ được thay thế bằng tệp mới được sao chép. Cú pháp cho phương pháp này là:
Ví dụ: mã sau sẽ sao chép một tệp có tên "file1.txt" vào một tệp có tên "file2.txt":
Một tính năng thú vị và có khả năng hữu ích của 4 là đối số boolean 5. Nếu nó được đặt thành 6 và tệp nguồn là một liên kết tượng trưng, thì thay vì sao chép tệp, một liên kết tượng trưng mới sẽ được tạo.sao chépPhương pháp này rất giống với 7, với sự khác biệt chính là ngoài việc sao chép nội dung của tệp nguồn, nó đi thêm một bước và cũng sao chép các quyền của hệ thống tệp. Sao chép quyền của tệp không phải là một nhiệm vụ tầm thường trong hầu hết các ngôn ngữ lập trình, vì vậy đây là một tính năng tốt để có.Cú pháp như sau:
Mỗi tham số này giống như trong phương thức 7. Ví dụ: mã sau sẽ sao chép "file1.txt" vào "file3.txt".
Lưu ý: Đảm bảo bạn không đặt tên cho tập lệnh của mình giống như một trong những mô -đun bạn đang nhập (điều mà tôi đã làm nhầm khi kiểm tra mã cho bài viết này). Nếu bạn làm như vậy, thì bạn sẽ gặp lỗi khi cố gắng nhập mô -đun đó do sự cố nhập hình tròn.: Make sure you don't name your script the same as one of the module you're importing (which I mistakenly did when testing code for this article). If you do, then you'll get an error when trying to import that module due to a circular import problem. copy2Như với các phương thức trước đó, phương thức 9 giống hệt với phương thức 0, nhưng ngoài việc sao chép nội dung tệp, nó cũng cố gắng bảo tồn tất cả các siêu dữ liệu của tệp nguồn. Nếu nền tảng không cho phép tiết kiệm siêu dữ liệu đầy đủ, thì 9 không trả lại lỗi và nó sẽ chỉ bảo tồn bất kỳ siêu dữ liệu nào mà nó có thể.Cú pháp như sau: Mỗi tham số này giống như trong phương thức 7. Ví dụ: mã sau sẽ sao chép "file1.txt" vào "file3.txt".Lưu ý: Đảm bảo bạn không đặt tên cho tập lệnh của mình giống như một trong những mô -đun bạn đang nhập (điều mà tôi đã làm nhầm khi kiểm tra mã cho bài viết này). Nếu bạn làm như vậy, thì bạn sẽ gặp lỗi khi cố gắng nhập mô -đun đó do sự cố nhập hình tròn. Như với các phương thức trước đó, phương thức 9 giống hệt với phương thức 0, nhưng ngoài việc sao chép nội dung tệp, nó cũng cố gắng bảo tồn tất cả các siêu dữ liệu của tệp nguồn. Nếu nền tảng không cho phép tiết kiệm siêu dữ liệu đầy đủ, thì 9 không trả lại lỗi và nó sẽ chỉ bảo tồn bất kỳ siêu dữ liệu nào mà nó có thể.
Một lần nữa, các tham số này giống như trong các lệnh trước mà chúng tôi đã đề cập cho đến nay.Ví dụ: mã sau sẽ sao chép "file1.txt" vào "file4.txt", cũng như bảo tồn siêu dữ liệu của tệp gốc, "file1.txt". Cú pháp như sau:
Mỗi tham số này giống như trong phương thức 7. Ví dụ: mã sau sẽ sao chép "file1.txt" vào "file3.txt".Lưu ý: Đảm bảo bạn không đặt tên cho tập lệnh của mình giống như một trong những mô -đun bạn đang nhập (điều mà tôi đã làm nhầm khi kiểm tra mã cho bài viết này). Nếu bạn làm như vậy, thì bạn sẽ gặp lỗi khi cố gắng nhập mô -đun đó do sự cố nhập hình tròn. Như với các phương thức trước đó, phương thức 9 giống hệt với phương thức 0, nhưng ngoài việc sao chép nội dung tệp, nó cũng cố gắng bảo tồn tất cả các siêu dữ liệu của tệp nguồn. Nếu nền tảng không cho phép tiết kiệm siêu dữ liệu đầy đủ, thì 9 không trả lại lỗi và nó sẽ chỉ bảo tồn bất kỳ siêu dữ liệu nào mà nó có thể.
Một lần nữa, các tham số này giống như trong các lệnh trước mà chúng tôi đã đề cập cho đến nay.Ví dụ: mã sau sẽ sao chép "file1.txt" vào "file4.txt", cũng như bảo tồn siêu dữ liệu của tệp gốc, "file1.txt". PopenPhương pháp này mở một đường ống đến hoặc từ lệnh của bạn. Tuy nhiên, lưu ý rằng phương pháp này đã không được chấp nhận trong Python 2.6, vì vậy chúng tôi không khuyên bạn nên sử dụng nó trừ khi bạn phải làm. Thay vào đó, tài liệu Python khuyên chúng tôi nên sử dụng các phương thức từ mô -đun phụ. Cú pháp như sau:
Ở đây giá trị được trả về là một đối tượng tệp được kết nối với đường ống. Đối tượng này có thể được đọc từ hoặc viết vào tùy thuộc vào chế độ. Chế độ mặc định là 'r', cho phép đọc nội dung tệp. Ví dụ dưới đây sẽ sao chép "file1.txt" vào "file6.txt": 0Chạy lệnh theo cách này hoàn toàn giống như khi bạn chạy nó trực tiếp từ dòng lệnh của thiết bị đầu cuối của bạn. hệ thốngPhương thức này thực thi lệnh được chỉ định trong một vỏ bọc. Nó có sẵn cho cả Unix và Windows. Cú pháp như sau: 1Ở đây 5 là một chuỗi chứa lệnh shell dos hoặc unix shell. Trong trường hợp của chúng tôi, đây là nơi chúng tôi sẽ đặt lệnh 0 hoặc 1.Ví dụ: mã sau sẽ sao chép "file1.txt" vào "file7.txt" 2Điều này trông giống hệt với lệnh 8 trước đó mà chúng tôi vừa sử dụng, nhưng lệnh được thực thi trong một vỏ bọc, điều đó có nghĩa là nó được thực thi trong một luồng riêng biệt song song với mã thực thi của bạn. Để chờ hoàn thành, bạn cần gọi 9 trên đối tượng được trả về bởi 0.
Sao chép các tệp với mô -đun phụMô -đun phụ dự định thay thế một số phương thức trong mô -đun 8 (đặc biệt là các phương thức 0 và 3) và nó trình bày hai phương thức chính để truy cập các lệnh hệ điều hành. Các phương pháp này là 4 và 5. Một lần nữa, đối với các hệ thống Unix, lệnh "Sao chép File1.TXT File2.txt" nên được thay thế bằng "CP File1.TXT File2.txt".Phương thức gọiTài liệu Python khuyến nghị chúng tôi sử dụng phương thức 4 để khởi chạy lệnh từ hệ điều hành.Cú pháp như sau: 3Ở đây giá trị được trả về là một đối tượng tệp được kết nối với đường ống. Đối tượng này có thể được đọc từ hoặc viết vào tùy thuộc vào chế độ. Chế độ mặc định là 'r', cho phép đọc nội dung tệp. Ví dụ dưới đây sẽ sao chép "file1.txt" vào "file6.txt": 4Chạy lệnh theo cách này hoàn toàn giống như khi bạn chạy nó trực tiếp từ dòng lệnh của thiết bị đầu cuối của bạn. hệ thống Phương thức này thực thi lệnh được chỉ định trong một vỏ bọc. Nó có sẵn cho cả Unix và Windows. Cú pháp như sau:Ở đây 5 là một chuỗi chứa lệnh shell dos hoặc unix shell. Trong trường hợp của chúng tôi, đây là nơi chúng tôi sẽ đặt lệnh 0 hoặc 1. 5Ví dụ: mã sau sẽ sao chép "file1.txt" vào "file7.txt" Điều này trông giống hệt với lệnh 8 trước đó mà chúng tôi vừa sử dụng, nhưng lệnh được thực thi trong một vỏ bọc, điều đó có nghĩa là nó được thực thi trong một luồng riêng biệt song song với mã thực thi của bạn. Để chờ hoàn thành, bạn cần gọi 9 trên đối tượng được trả về bởi 0. 6Sao chép các tệp với mô -đun phụ Mô -đun phụ dự định thay thế một số phương thức trong mô -đun import shutil shutil.copyfile('file1.txt', 'file2.txt') 8 (đặc biệt là các phương thức shutil.copy2(src_file, dest_file, *, follow_symlinks=True) 0 và shutil.copy2(src_file, dest_file, *, follow_symlinks=True) 3) và nó trình bày hai phương thức chính để truy cập các lệnh hệ điều hành. Các phương pháp này là shutil.copy2(src_file, dest_file, *, follow_symlinks=True) 4 và shutil.copy2(src_file, dest_file, *, follow_symlinks=True) 5. Một lần nữa, đối với các hệ thống Unix, lệnh "Sao chép File1.TXT File2.txt" nên được thay thế bằng "CP File1.TXT File2.txt".Phương thức gọi Tài liệu Python khuyến nghị chúng tôi sử dụng phương thức 4 để khởi chạy lệnh từ hệ điều hành.Tham số 7 sẽ bao gồm lệnh shell của chúng tôi. Tuy nhiên, một lời cảnh báo, vì tài liệu Python cảnh báo chúng tôi rằng sử dụng 8 có thể là một rủi ro bảo mật.
Sự khác biệt giữa SHOWIL COPY () và SOWLIL COPPREE () là gì?Trong khi Sould.Copy () sẽ sao chép một tệp duy nhất, SOWN.CopyTree () sẽ sao chép toàn bộ thư mục và mọi thư mục và tệp có trong đó.shutil. copy() will copy a single file, shutil. copytree() will copy an entire folder and every folder and file contained in it.
Tàu con thoi là gì trong Python?Mô-đun SHOTIL cung cấp một số hoạt động cấp cao trên các tệp và bộ sưu tập tệp.Cụ thể, các chức năng được cung cấp hỗ trợ sao chép và xóa tệp.Đối với các hoạt động trên các tệp riêng lẻ, xem thêm mô -đun HĐH.. In particular, functions are provided which support file copying and removal. For operations on individual files, see also the os module. |