Nếu bạn đang nhận lại '\\' từ hệ điều hành. getcwd[], thì tôi nghĩ điều đó có nghĩa là bạn hiện đang ở trong thư mục gốc của Windows. Thành thật mà nói, tôi không biết nhiều về Windows, vì vậy tôi không chắc chắn 100% - tôi thực sự nghĩ rằng bạn cần phải có một tên ổ đĩa trước nó, chẳng hạn như 'c. \\' hoặc tương tự
Bạn không thể thêm 'r' vào một chuỗi hiện có; . Vì vậy, một khi bạn có chuỗi từ os. getcwd[], bạn chỉ có thể sử dụng nó như một chuỗi;
Đoạn mã Python số 1 – Trình viết mã Python nói.
[…] Ghi chú. Trong trường hợp bạn đang thắc mắc “r” làm gì trong dòng quy trình con, thì nó cho Python biết rằng các dấu gạch chéo ngược sau đây không phải là các ký tự thoát và do đó cho phép chúng tôi sử dụng các đường dẫn Windows “bình thường”. Trước khi “r” được giới thiệu, chúng tôi phải sử dụng hai dấu gạch chéo ngược khiến mọi thứ hơi nhầm lẫn. Để được giải thích chi tiết hơn, hãy đọc bài đăng này. […]
Reuven Lerner nói.
Đúng, các dấu gạch chéo về phía trước hoạt động tốt [như tôi đã đề cập ở phần “PS” ở cuối bài]. Nhưng đối với những người chỉ làm việc trên Windows và những người tương đối mới đối với các vấn đề đa nền tảng, các dấu gạch chéo về phía trước có vẻ rất kỳ lạ và không trực quan đối với họ. Tôi thường khuyến khích mọi người sử dụng các chuỗi thô khi họ phải mã hóa cứng các đường dẫn, để tránh các xung đột [gần như không thể tránh khỏi] mà họ sẽ gặp phải
Richard M. Smith nói.Trên thực tế, phiên bản Windows của Python chấp nhận các dấu gạch chéo thông thường trong đường dẫn tệp. Thí dụ
>>> infile = open[“C. /python27/tools/scripts/suff. py”]
>>> thông tin. đọc[]
“#. /usr/bin/env python\n\n# su\n …
PowerShell cũng chấp nhận dấu gạch chéo thông thường trong đường dẫn tệp. Thí dụ
PSC. \> thư mục c. /python27/công cụ/tập lệnh
Danh mục. C. \python27\tools\scripts
Chế độ LastWriteTime Độ dài Tên
—- ————- —— —-
-a—- 2015-08-21 3. 37 CHIỀU 96 2to3. py
-a—- 2015-08-21 3. 37 giờ tối 4335 phân tích_dxp. py
-a—- 2015-08-21 3. 37 PM 4075 byext. py
-a—- 2015-08-21 3. 37 giờ chiều 1699 byteyears. py
-a—- 2015-08-21 3. 37 PM 4825 kiểm tra thêm. py
OTOH, cmd. exe yêu cầu dấu gạch chéo ngược trong đường dẫn tệp
reuven nói.Tất cả phụ thuộc vào bối cảnh
Nếu bạn đang viết một chương trình nhanh chóng, một lần, thì điều đó không thành vấn đề
Nhưng vâng, nếu bạn đang viết mã sản xuất cần tồn tại trong nhiều năm và được duy trì bởi những người khác, thì một đường dẫn mã hóa cứng gần như chắc chắn là một ý tưởng tồi và sử dụng thứ gì đó như os. đường dẫn. tham gia gần như chắc chắn tốt hơn. Hoặc thậm chí tốt hơn thế, sử dụng pathlib, giải quyết nhiều vấn đề hơn nữa
Như đã nêu trước đó, biểu thức chính quy sử dụng ký tự gạch chéo ngược ["\"] để biểu thị các dạng đặc biệt hoặc để cho phép sử dụng các ký tự đặc biệt mà không cần gọi ý nghĩa đặc biệt của chúng. Điều này mâu thuẫn với việc Python sử dụng cùng một ký tự cho cùng một mục đích trong chuỗi ký tự
Giả sử bạn muốn viết RE khớp với chuỗi "\ section", có thể tìm thấy trong tệp LATEX. Để tìm ra những gì cần viết trong mã chương trình, hãy bắt đầu với chuỗi mong muốn được khớp. Tiếp theo, bạn phải thoát khỏi mọi dấu gạch chéo ngược và các siêu ký tự khác bằng cách đặt trước chúng bằng dấu gạch chéo ngược, dẫn đến chuỗi "\\section". Chuỗi kết quả phải được chuyển tới re. compile[] phải là \\section
. Tuy nhiên, để thể hiện điều này dưới dạng chuỗi ký tự Python, cả hai dấu gạch chéo ngược phải được thoát lại
\section
Chuỗi văn bản được khớp\\section
Dấu gạch chéo ngược thoát cho re. biên dịch_______23_______ Dấu gạch chéo ngược đã thoát cho một chuỗi ký tựNói tóm lại, để khớp với dấu gạch chéo ngược theo nghĩa đen, người ta phải viết '\\\\' dưới dạng chuỗi RE, vì biểu thức chính quy phải là "\\" và mỗi dấu gạch chéo ngược phải được biểu thị là "\\" bên trong Python thông thường . Trong các RE có dấu gạch chéo ngược lặp đi lặp lại, điều này dẫn đến nhiều dấu gạch chéo ngược lặp đi lặp lại khiến chuỗi kết quả trở nên khó hiểu
Giải pháp là sử dụng ký hiệu chuỗi thô của Python cho các biểu thức chính quy; . Các biểu thức chính quy thông thường sẽ được thể hiện bằng mã Python bằng cách sử dụng ký hiệu chuỗi thô này
Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về ký tự dấu gạch chéo ngược trong Python như một phần của ký tự thứ tự đặc biệt hoặc để thoát ký tự trong chuỗi
Giới thiệu về dấu gạch chéo ngược Python
Trong Python, dấu gạch chéo ngược[
1] là một ký tự đặc biệt. Nếu bạn sử dụng dấu gạch chéo ngược trước một ký tự khác, nó sẽ thay đổi ý nghĩa của ký tự đó
Hello, World
Ví dụ,
2 là một ký tự chữ. Nhưng nếu bạn sử dụng ký tự gạch chéo ngược ở phía trước chữ cái
Hello, World
2, nó sẽ trở thành ký tự tab [
Hello, World
4]
Hello, World
Nói chung, dấu gạch chéo ngược có hai mục đích chính
Đầu tiên, ký tự gạch chéo ngược là một phần của chuỗi ký tự đặc biệt, chẳng hạn như ký tự tab
4 hoặc ký tự dòng mới
Hello, World
6
Hello, World
Ví dụ sau in một chuỗi có ký tự xuống dòng
Code language: PHP [php]
print['Hello,\n World']
đầu ra
Hello, World
\n là một ký tự đơn, không phải hai ký tự. Ví dụ
Thứ hai, dấu gạch chéo ngược [
1] thoát khỏi các ký tự đặc biệt khác. Ví dụ: nếu bạn có một chuỗi có một trích dẫn bên trong một chuỗi trích dẫn đơn như chuỗi sau, bạn cần sử dụng dấu gạch chéo ngược để thoát khỏi ký tự trích dẫn đơn
Hello, World
Code language: PHP [php]
s = '"Python\'s awesome" She said' print[s]
đầu ra
Code language: JavaScript [javascript]
"Python's awesome" She said
Dấu gạch chéo ngược trong chuỗi f
PEP-498 chỉ định rằng chuỗi f không thể chứa ký tự dấu gạch chéo ngược như một phần của biểu thức bên trong dấu ngoặc nhọn
8
Hello, World
Ví dụ sau sẽ dẫn đến lỗi
Code language: PHP [php]
colors = ['red','green','blue'] s = f'The RGB colors are:\n {'\n'.join[colors]}' print[s]
Lỗi
Code language: JavaScript [javascript]
SyntaxError: f-string expression part cannot include a backslash
Để khắc phục điều này, bạn cần nối các chuỗi trong danh sách
9 trước khi đặt chúng vào dấu ngoặc nhọn
Hello, World
Code language: PHP [php]
colors = ['red','green','blue'] rgb = '\n'.join[colors] s = f"The RGB colors are:\n{rgb}" print[s]
đầu ra
The RGB colors are: red green blue
Dấu gạch chéo ngược trong chuỗi thô
Các chuỗi thô coi ký tự dấu gạch chéo ngược [_______0_______1] là ký tự chữ. Ví dụ sau coi ký tự gạch chéo ngược
1 là ký tự chữ, không phải ký tự đặc biệt
Hello, World