Hướng dẫn python escape space in path - python thoát không gian trong đường dẫn
Tôi cần chuyển một đường dẫn phụ đề đến VLC, nó chỉ đi theo các đường dẫn gốc (dấu gạch chéo ngược trên cửa sổ, chém về phía trước trên UNIX) và cần thoát khỏi không gian. Show Giả sử tôi có một đường dẫn bản địa QT với một không gian trong đó. 1Làm cách nào để chuyển đổi nó thành điều này: 2
Ekhumoro 112K19 Huy hiệu vàng218 Huy hiệu bạc324 Huy hiệu đồng19 gold badges218 silver badges324 bronze badges Đã hỏi 24 tháng 2 năm 2017 lúc 22:52Feb 24, 2017 at 22:52
7 Để xử lý vấn đề này, tôi thực sự đề nghị sử dụng
Nếu bạn nhập tất cả các chuỗi tên tệp của mình bằng cách sử dụng dấu gạch chéo phía trước, và sau đó để 3 thay đổi chúng thành dấu gạch chéo ngược cho bạn, theo cách này.Đã trả lời ngày 24 tháng 2 năm 2017 lúc 23:07Feb 24, 2017 at 23:07
lmiguelvargasflmiguelvargasflmiguelvargasf 57.2K43 Huy hiệu vàng212 Huy hiệu bạc215 Huy hiệu Đồng43 gold badges212 silver badges215 bronze badges Không chắc chắn nếu có bất cứ điều gì trong thư viện tiêu chuẩn để xử lý việc này, nhưng nếu nó chỉ là chém và không gian, bạn cần một chuỗi đơn giản thay thế sẽ nhanh hơn và đơn giản hơn. I E.
Đã trả lời ngày 24 tháng 2 năm 2017 lúc 23:03Feb 24, 2017 at 23:03
Tôi đang thực hiện một số tự động hóa với kịch bản shell và tôi gặp khó khăn trong việc chạy tập lệnh Python trong đó đường dẫn của nó có không gian. Hãy tha thứ cho tôi nếu tôi đã phạm bất kỳ sai lầm hoặc thực hành xấu trong mã, tôi mới bắt đầu học ngày hôm qua :). Đây là mã:
Tập lệnh này cho đầu ra này:
Dòng đầu tiên là đường dẫn đầy đủ đến tệp Python, bạn có thể thấy rằng có một không gian ở giữa tên người dùng của tôi vì vậy tôi đã thoát nó bằng một dấu gạch chéo ngược. Dòng thứ hai là lệnh Python đầy đủ mà tôi đang chạy; Ngoài việc thoát khỏi không gian, tôi đã bao quanh con đường với các quote đôi. Nếu tôi chạy điều đó tuy nhiên, tôi sẽ gặp lỗi trên dòng 3. Nếu tôi sao chép và dán dòng 2 trực tiếp vào vỏ của tôi và chạy nó, nó hoạt động. Tôi không chắc tại sao lệnh của tôi không hoạt động trong tập lệnh shell của tôi. Có điều gì đó không ổn với cách tôi thoát khỏi không gian hoặc chạy lệnh Python? Để thoát khỏi khoảng trống trong đường dẫn tệp Windows, hãy đặt các dấu ngoặc kép xung quanh phần của đường dẫn có không gian trong đó. Ví dụ: C: \ "Thư mục kiểm tra" \ text.txt. Bạn cũng có thể đặt các dấu ngoặc kép xung quanh toàn bộ đường dẫn để đảm bảo bạn không bỏ lỡ bất kỳ không gian nào. Các môi trường dòng lệnh như dấu nhắc lệnh Windows và PowerShell sử dụng các khoảng trắng để riêng biệt các lệnh và đối số, nhưng tên và tên thư mục cũng có thể chứa khoảng trắng. Để chỉ định một đường dẫn tệp có không gian bên trong nó, bạn sẽ cần phải thoát khỏi đó. Dòng lệnh 101: Tại sao bạn phải thoát khỏi khoảng trốngTrình thoát khỏi một nhân vật thay đổi ý nghĩa của nó. Ví dụ, thoát khỏi một không gian sẽ khiến vỏ đối xử với nó như một ký tự không gian tiêu chuẩn chứ không phải là một ký tự đặc biệt phân tách các đối số dòng lệnh. Ví dụ: hãy để nói rằng bạn có một tệp văn bản mà bạn muốn xem nội dung của. Bạn có thể làm điều đó với lệnh loại. Giả sử tệp văn bản là tại 4, lệnh in trong lệnh trong lệnh sẽ hiển thị nội dung của nó:type C:\Test\File.txt Tuyệt quá. Bây giờ, điều gì sẽ xảy ra nếu bạn có cùng một tệp tại 5? Nếu bạn thử chạy lệnh dưới đây, nó đã giành được công việc của Google, những không gian trong đường dẫn tệp đang cản trở.type C:\Test Folder\Test File.txt Dòng lệnh cho rằng bạn đang cố gắng tìm kiếm một tệp có tên & nbsp; ________ 16 và nói rằng nó không thể tìm thấy đường dẫn được chỉ định. Ba cách để thoát khoảng trống trên cửa sổCó ba cách khác nhau mà bạn có thể thoát khỏi đường dẫn tệp trên Windows:
Chúng tôi sẽ chỉ cho bạn cách sử dụng từng phương pháp. Kèm theo con đường trong dấu ngoặc kép (”)Cách tiêu chuẩn để đảm bảo Windows xử lý một đường dẫn tệp đúng cách là đặt nó trong các ký tự dấu ngoặc kép (). Ví dụ: với lệnh mẫu của chúng tôi ở trên, chúng tôi chỉ cần chạy như sau: thay vào đó: type "C:\Test Folder\Test File.txt" Bạn thực sự có thể gửi kèm các phần của đường dẫn trong dấu ngoặc kép nếu bạn thích. Ví dụ: hãy để nói rằng bạn đã có một tệp có tên File.txt trong thư mục đó. Bạn có thể chạy như sau: type C:\"Test Folder"\File.txt Tuy nhiên, đó là điều cần thiết trong hầu hết các trường hợp, bạn chỉ có thể sử dụng dấu ngoặc kép xung quanh toàn bộ con đường. Giải pháp này hoạt động cả trong môi trường nhắc lệnh truyền thống (CMD) và trong Windows PowerShell. Đôi khi: Sử dụng nhân vật Caret để thoát khỏi không gian ( ^)Trong lời nhắc lệnh, nhân vật Caret ( ^) sẽ cho phép bạn thoát khỏi không gian theo lý thuyết. Chỉ cần thêm nó trước mỗi không gian trong tên tệp. . Ở đây, vấn đề: Mặc dù điều này nên hoạt động, và đôi khi nó không hoạt động mọi lúc. Việc xử lý lệnh nhắc lệnh của nhân vật này là lạ. Ví dụ: với lệnh mẫu của chúng tôi, bạn đã chạy như sau và nó sẽ hoạt động: type C:\Test^ Folder\Test^ File.txt Mặt khác, nếu chúng tôi thử mở tệp của mình trực tiếp bằng cách nhập đường dẫn của nó vào dấu nhắc lệnh, chúng tôi có thể thấy rằng ký tự caret thoát khỏi khoảng trống đúng cách: C:\Test^ Folder\Test^ File.txt Vậy khi nào nó hoạt động? Vâng, dựa trên nghiên cứu của chúng tôi, nó dường như hoạt động với một số ứng dụng chứ không phải các ứng dụng khác. Số dặm của bạn có thể thay đổi tùy thuộc vào lệnh mà bạn sử dụng. Việc xử lý lệnh nhắc lệnh của nhân vật này là lạ. Hãy thử với bất kỳ lệnh nào mà bạn sử dụng, nếu bạn quan tâm đến thì nó có thể hoặc không hoạt động. Để thống nhất, chúng tôi khuyên bạn nên gắn bó với các trích dẫn kép trong dấu nhắc lệnh hoặc chuyển sang PowerShell và sử dụng phương thức Accent Grave bên dưới. PowerShell: Sử dụng ký tự giọng mộ (`)PowerShell sử dụng ký tự giọng mộ (`) làm nhân vật thoát của nó. Chỉ cần thêm nó trước mỗi không gian trong tên tệp. (Bạn sẽ tìm thấy ký tự này phía trên phím tab và bên dưới phím ESC trên bàn phím của bạn.) 0Mỗi nhân vật giọng nói nghiêm trọng bảo PowerShell thoát khỏi nhân vật sau. Lưu ý rằng điều này chỉ hoạt động trong môi trường PowerShell. Bạn sẽ phải sử dụng ký tự Caret trong Prompt Prompt. Nếu bạn quen thuộc với các hệ điều hành giống như UNIX như Linux và MacOS, bạn có thể đã quen với việc sử dụng ký tự dấu gạch chéo ngược (\) trước một không gian để thoát khỏi nó. Windows sử dụng điều này cho các đường dẫn tệp thông thường, do đó, nó không hoạt động-các ký tự CARET ( ^) và Grave Accent (`) là phiên bản Windows của Backslash, tùy thuộc vào vỏ dòng lệnh mà bạn sử dụng. Đọc tiếp theo
|