Làm cách nào tôi có thể di chuyển các tệp [như trình bao lệnh mv] trên nút. js?
Giải pháp tốt nhất
Theo nhận xét của seppo0010, tôi đã sử dụng chức năng đổi tên để làm điều đó
fs. đổi tên [oldPath, newPath, gọi lại]
Đã thêm vào. v0. 0. 2____0Đổi tên không đồng bộ[2]. Không có đối số nào khác ngoài một ngoại lệ có thể được đưa ra cho cuộc gọi lại hoàn thành
Giải pháp liên quan
Python – Cách kiểm tra xem một tệp có tồn tại mà không có ngoại lệ hay không
Nếu lý do bạn đang kiểm tra là để bạn có thể làm điều gì đó như
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
3, thì sẽ an toàn hơn khi sử dụng from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
4 xung quanh nỗ lực mở nó. Việc kiểm tra rồi mở có nguy cơ khiến tệp bị xóa hoặc bị di chuyển hoặc điều gì đó xảy ra giữa thời điểm bạn kiểm tra và khi bạn cố mở tệp đóNếu bạn không định mở tệp ngay lập tức, bạn có thể sử dụng
Trả lại
6 nếu đường dẫn là tệp thông thường hiện có. Điều này tuân theo các liên kết tượng trưng, vì vậy cả hai và có thể đúng cho cùng một đường dẫnfrom pathlib import Path my_file = Path["/path/to/file"] if my_file.is_file[]: # file exists
import os.path
os.path.isfile[fname]
nếu bạn cần chắc chắn đó là một tập tin
Bắt đầu với Python 3. 4, cung cấp một cách tiếp cận hướng đối tượng [được nhập lại vào
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
8 trong Python 2. 7]from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
Để kiểm tra một thư mục, hãy làm
if my_file.is_dir[]:
# directory exists
Để kiểm tra xem một đối tượng
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
9 có tồn tại độc lập với tệp hay thư mục hay không, hãy sử dụng if my_file.is_dir[]:
# directory exists
0from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
0Bạn cũng có thể sử dụng
if my_file.is_dir[]:
# directory exists
1 trong khối from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
4from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
3Javascript – Cách bao gồm một tệp JavaScript trong một tệp JavaScript khác
Các phiên bản cũ của JavaScript không có nhập, bao gồm hoặc yêu cầu, vì vậy nhiều cách tiếp cận khác nhau cho vấn đề này đã được phát triển
Nhưng từ 2015 [ES6] JavaScript đã có chuẩn module ES6 để import module trong Node. js, cũng được hỗ trợ bởi
Để tương thích với các trình duyệt cũ hơn, có thể sử dụng các công cụ xây dựng như Webpack và Rollup và/hoặc các công cụ dịch mã như Babel
Mô-đun ES6Các mô-đun ECMAScript [ES6] đã được hỗ trợ trong Node. js kể từ v8. 5, với cờ
if my_file.is_dir[]:
# directory exists
3 và vì ít nhất Node. js v13. 8. 0 không có cờ. Để bật "ESM" [so với. Nút. js trước đây của hệ thống mô-đun kiểu CommonJS ["CJS"]], bạn có thể sử dụng if my_file.is_dir[]:
# directory exists
4 trong if my_file.is_dir[]:
# directory exists
5 hoặc cung cấp cho các tệp phần mở rộng if my_file.is_dir[]:
# directory exists
6. [Tương tự, các mô-đun được viết bằng Node. mô-đun CJS trước của js có thể được đặt tên là if my_file.is_dir[]:
# directory exists
7 nếu mặc định của bạn là ESM. ]Sử dụng
if my_file.is_dir[]:
# directory exists
5from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
0Sau đó
if my_file.is_dir[]:
# directory exists
9from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
2Sau đó
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
00from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
4Sử dụng
if my_file.is_dir[]:
# directory exists
6, bạn sẽ có from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
02from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
2Sau đó
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
03import os.path
os.path.isfile[fname]
0Mô-đun ECMAScript trong trình duyệt
Các trình duyệt đã hỗ trợ tải trực tiếp các mô-đun ECMAScript [không yêu cầu các công cụ như Webpack] kể từ Safari 10. 1, Chrome 61, Firefox 60 và Edge 16. Kiểm tra hỗ trợ hiện tại tại. Không cần sử dụng Node. tiện ích mở rộng
if my_file.is_dir[]:
# directory exists
6 của js; import os.path
os.path.isfile[fname]
1import os.path
os.path.isfile[fname]
2Đọc thêm tại https. //jakearchibald. com/2017/es-modules-in-browsers/
Nhập động trong trình duyệt
Nhập động cho phép tập lệnh tải các tập lệnh khác khi cần
import os.path
os.path.isfile[fname]
3Đọc thêm tại https. // nhà phát triển. Google. com/web/cập nhật/2017/11/nhập động
Nút. js yêu cầuKiểu mô-đun CJS cũ hơn, vẫn được sử dụng rộng rãi trong Node. js, là hệ thống
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
05/from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
06import os.path
os.path.isfile[fname]
4import os.path
os.path.isfile[fname]
5Có nhiều cách khác để JavaScript đưa nội dung JavaScript bên ngoài vào trình duyệt không yêu cầu tiền xử lý
Đang tải AJAXBạn có thể tải tập lệnh bổ sung bằng lệnh gọi AJAX rồi sử dụng
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
07 để chạy tập lệnh đó. Đây là cách đơn giản nhất nhưng bị giới hạn trong miền của bạn do mô hình bảo mật hộp cát JavaScript. Sử dụng from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
07 cũng có thể dẫn đến lỗi, hack và các vấn đề bảo mậtĐang tảiGiống như Nhập động, bạn có thể tải một hoặc nhiều tập lệnh bằng lệnh gọi
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
09 bằng cách sử dụng các lời hứa để kiểm soát thứ tự thực thi đối với các phần phụ thuộc của tập lệnh bằng cách sử dụng thư viện Fetch Injectimport os.path
os.path.isfile[fname]
6jQuery Đang tảiThư viện jQuery cung cấp chức năng tải trong một dòng
import os.path
os.path.isfile[fname]
7Đang tải tập lệnh độngBạn có thể thêm thẻ tập lệnh có URL tập lệnh vào HTML. Để tránh chi phí hoạt động của jQuery, đây là một giải pháp lý tưởng
Tập lệnh thậm chí có thể nằm trên một máy chủ khác. Hơn nữa, trình duyệt đánh giá mã. Thẻ
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
30 có thể được chèn vào trang web from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
31 hoặc được chèn ngay trước thẻ đóng from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
32Đây là một ví dụ về cách nó có thể hoạt động
import os.path
os.path.isfile[fname]
8Hàm này sẽ thêm thẻ
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
30 mới vào cuối phần đầu của trang, trong đó thuộc tính from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
34 được đặt thành URL được cung cấp cho hàm làm tham số đầu tiênCả hai giải pháp này đều được thảo luận và minh họa trong JavaScript Madness. Đang tải tập lệnh động
Bây giờ, có một vấn đề lớn bạn phải biết về. Làm điều đó ngụ ý rằng bạn tải mã từ xa. Các trình duyệt web hiện đại sẽ tải tệp và tiếp tục thực thi tập lệnh hiện tại của bạn vì chúng tải mọi thứ không đồng bộ để cải thiện hiệu suất. [Điều này áp dụng cho cả phương thức jQuery và phương thức tải tập lệnh động thủ công. ]
Điều đó có nghĩa là nếu bạn trực tiếp sử dụng các thủ thuật này, bạn sẽ không thể sử dụng mã mới tải của mình ở dòng tiếp theo sau khi bạn yêu cầu tải mã, vì mã vẫn đang tải
Ví dụ.
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
35 chứa from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
36import os.path
os.path.isfile[fname]
9Sau đó bạn tải lại trang nhấn F5. Và nó hoạt động. Gây nhầm lẫn
Vậy giờ làm gì với nó ?
Chà, bạn có thể sử dụng bản hack mà tác giả gợi ý trong liên kết tôi đã đưa cho bạn. Tóm lại, đối với những người vội vàng, anh ấy sử dụng một sự kiện để chạy chức năng gọi lại khi tập lệnh được tải. Vì vậy, bạn có thể đặt tất cả mã bằng thư viện từ xa trong chức năng gọi lại. Ví dụ
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
0Sau đó, bạn viết mã bạn muốn sử dụng SAU KHI tập lệnh được tải trong hàm lambda
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
1Sau đó, bạn chạy tất cả
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
2Lưu ý rằng tập lệnh có thể thực thi sau khi DOM được tải hoặc trước đó, tùy thuộc vào trình duyệt và việc bạn có bao gồm dòng
from pathlib import Path
my_file = Path["/path/to/file"]
if my_file.is_file[]:
# file exists
37 hay không. Có một bài viết hay về tải Javascript nói chung thảo luận về vấn đề nàyHợp nhất/Tiền xử lý mã nguồnNhư đã đề cập ở đầu câu trả lời này, nhiều nhà phát triển sử dụng [các] công cụ biên dịch/xây dựng như Parcel, Webpack hoặc Babel trong các dự án của họ, cho phép họ sử dụng cú pháp JavaScript sắp tới, cung cấp khả năng tương thích ngược cho các trình duyệt cũ hơn, kết hợp các tệp, thu nhỏ,