Tôi đang cố gắng tìm cách in một chuỗi ở dạng thô từ một biến. Chẳng hạn, nếu tôi thêm một biến môi trường vào Windows cho một đường dẫn, có thể trông giống như
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
5, tôi biết tôi có thể làm:print[r'C:\\Windows\Users\alexb\']
Nhưng tôi không thể đặt một
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
6 trước một biến .... ví dụ::test = 'C:\\Windows\Users\alexb\'
print[rtest]
Rõ ràng sẽ chỉ cố gắng in
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
7.Tôi cũng biết có
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
Nhưng điều này trả về
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
8 cũng nhưtest = 'C:\\Windows\Users\alexb\'
print[test.encode['string-escape']]
Vì vậy, tôi đang tự hỏi nếu có bất kỳ cách thanh lịch nào để tạo một biến giữ đường dẫn đó in thô, vẫn đang sử dụng bài kiểm tra? Sẽ thật tuyệt nếu nó chỉ là
print[raw[test]]
Nhưng nó không
David Buck
3.60433 Huy hiệu vàng29 Huy hiệu bạc34 Huy hiệu đồng33 gold badges29 silver badges34 bronze badges
Đã hỏi ngày 9 tháng 9 năm 2013 lúc 21:29Sep 9, 2013 at 21:29
2
Tôi đã có một vấn đề tương tự và tình cờ thấy câu hỏi này, và biết nhờ câu trả lời của Nick Olson-Harris rằng giải pháp nằm ở việc thay đổi chuỗi.
Hai cách giải quyết nó:
Nhận đường dẫn bạn muốn sử dụng các hàm Python gốc, ví dụ:
test = os.getcwd[] # In case the path in question is your current directory print[repr[test]]
Điều này làm cho nền tảng độc lập và hiện nó hoạt động với
9. Nếu đây là một lựa chọn cho bạn, đó là giải pháp thanh lịch hơn.test = 'C:\\Windows\Users\alexb\' print[repr[test]]
Nếu chuỗi của bạn không phải là một đường dẫn, hãy xác định nó theo cách tương thích với các chuỗi Python, trong trường hợp này bằng cách thoát khỏi các dấu gạch chéo ngược của bạn:
test = 'C:\\Windows\\Users\\alexb\\' print[repr[test]]
user2357112
244K26 Huy hiệu vàng398 Huy hiệu bạc477 Huy hiệu đồng26 gold badges398 silver badges477 bronze badges
Đã trả lời ngày 11 tháng 11 năm 2014 lúc 14:53Nov 11, 2014 at 14:53
OlavrgolavrgOlavRG
7026 Huy hiệu bạc4 Huy hiệu đồng6 silver badges4 bronze badges
Nói chung, để tạo một chuỗi thô từ một biến chuỗi, tôi sử dụng điều này:
string = "C:\\Windows\Users\alexb"
raw_string = r"{}".format[string]
output:
'C:\\\\Windows\\Users\\alexb'
Đã trả lời ngày 4 tháng 11 năm 2018 lúc 14:01Nov 4, 2018 at 14:01
3
Bạn không thể biến một chuỗi "RAW" hiện có. Tiền tố
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
6 về nghĩa đen được hiểu bởi trình phân tích cú pháp; Nó bảo nó bỏ qua các chuỗi thoát trong chuỗi. Tuy nhiên, một khi một chuỗi theo nghĩa đen đã được phân tích cú pháp, không có sự khác biệt giữa một chuỗi thô và một chuỗi "thông thường". Ví dụ, nếu bạn có một chuỗi có chứa một dòng mới, không có cách nào để nói vào thời gian chạy liệu dòng mới đó có đến từ chuỗi thoát test = 'C:\\Windows\Users\alexb\'
print[test.encode['string-escape']]
1, từ một dòng mới theo nghĩa đen trong một chuỗi được trích xuất ba [thậm chí có thể là một chuỗi thô!], Từ Gọi test = 'C:\\Windows\Users\alexb\'
print[test.encode['string-escape']]
2, bằng cách đọc nó từ một tệp hoặc bất cứ điều gì khác mà bạn có thể đưa ra. Đối tượng chuỗi thực tế được xây dựng từ bất kỳ phương thức nào trông giống nhau.Đã trả lời ngày 9 tháng 9 năm 2013 lúc 21:45Sep 9, 2013 at 21:45
1
Tôi biết tôi đã quá muộn cho câu trả lời nhưng đối với những người đọc điều này, tôi đã tìm thấy một cách dễ dàng hơn nhiều để làm điều đó
myVariable = 'This string is supposed to be raw \'
print[r'%s' %myVariable]
Đã trả lời ngày 11 tháng 7 năm 2019 lúc 9:26Jul 11, 2019 at 9:26
0
thử cái này. Dựa trên loại đầu ra bạn muốn. Đôi khi bạn có thể không cần báo giá duy nhất xung quanh chuỗi in.
test = 'C:\\Windows\Users\alexb\'
print[rtest]
0Đã trả lời ngày 10 tháng 8 năm 2020 lúc 1:33Aug 10, 2020 at 1:33
1
Loại bỏ các ký tự thoát trước khi lưu trữ hoặc thao tác với chuỗi thô:
Bạn có thể thay đổi bất kỳ dấu gạch chéo ngược nào của đường dẫn '\' để chuyển tiếp chém '/' trước khi lưu trữ chúng trong một biến. Các chém về phía trước không cần phải thoát ra:
test = 'C:\\Windows\Users\alexb\'
print[rtest]
1Đã trả lời ngày 10 tháng 3 năm 2016 lúc 15:06Mar 10, 2016 at 15:06
DrawtDrawtDrawT
2324 Huy hiệu bạc6 Huy hiệu Đồng4 silver badges6 bronze badges
Chỉ cần sử dụng r'String '. Hy vọng điều này sẽ giúp bạn khi tôi thấy bạn chưa có câu trả lời mong đợi của bạn:
test = 'C:\\Windows\Users\alexb\'
print[rtest]
2Đã trả lời ngày 26 tháng 2 năm 2020 lúc 10:29Feb 26, 2020 at 10:29
Một Khangan KhangAn Khang
2412 Huy hiệu bạc8 Huy hiệu đồng2 silver badges8 bronze badges
Tôi có biến của mình được gán cho chuỗi mẫu phức tạp lớn để sử dụng với mô -đun RE và nó được kết hợp với một vài chuỗi khác và cuối cùng tôi muốn in nó sau đó sao chép và kiểm tra trên regex101.com. Nhưng khi tôi in nó ở chế độ tương tác, tôi sẽ bị chém đôi - '\\ w' như @jimmynoarms đã nói:
Giải pháp cho Python 3X:
test = 'C:\\Windows\Users\alexb\'
print[rtest]
3Đã trả lời ngày 5 tháng 4 năm 2020 lúc 8:31Apr 5, 2020 at 8:31
1
Chuỗi cụ thể của bạn sẽ không hoạt động như được gõ vì các ký tự thoát ở cuối \ ", sẽ không cho phép nó đóng trên trích dẫn.
Có lẽ tôi đã sai về điều đó vì tôi vẫn còn rất mới đối với Python, vì vậy nếu vậy xin vui lòng sửa cho tôi nhưng, thay đổi một chút để điều chỉnh cho điều đó, hàm repr [] sẽ thực hiện công việc tái tạo bất kỳ chuỗi nào được lưu trữ trong một Biến như một chuỗi thô.
Bạn có thể làm theo hai cách:
test = 'C:\\Windows\Users\alexb\'
print[rtest]
4Lưu trữ nó trong một biến:
test = 'C:\\Windows\Users\alexb\'
print[rtest]
5Sử dụng repr []:
test = 'C:\\Windows\Users\alexb\'
print[rtest]
6hoặc thay thế chuỗi bằng %r
test = 'C:\\Windows\Users\alexb\'
print[rtest]
7Chuỗi sẽ được sao chép với các trích dẫn đơn mặc dù bạn sẽ cần phải loại bỏ chúng sau đó.
Đã trả lời ngày 25 tháng 8 năm 2018 lúc 18:34Aug 25, 2018 at 18:34
Để biến một biến thành RAW STR, chỉ cần sử dụng
test = 'C:\\Windows\Users\alexb\'
print[rtest]
8test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
6 là thô và test = 'C:\\Windows\Users\alexb\'
print[test.encode['string-escape']]
4 là F-STR; Đặt chúng lại với nhau và bùng nổ nó hoạt động.
Cottectail
4.37318 Huy hiệu vàng18 Huy hiệu bạc36 Huy hiệu đồng18 gold badges18 silver badges36 bronze badges
Đã trả lời ngày 15 tháng 7 lúc 12:19Jul 15 at 12:19
Thay thế Slash Back-Slash bằng Slash về phía trước bằng một trong những điều bên dưới:
- Re.sub [r "\", "/", x]
- Re.sub [r "\", "/", x]
Đã trả lời ngày 8 tháng 4 năm 2020 lúc 19:56Apr 8, 2020 at 19:56
Dhgorateladhgorateladhgoratela
6045 Huy hiệu bạc16 Huy hiệu Đồng5 silver badges16 bronze badges
Đây là thủ thuật
test = 'C:\\Windows\Users\alexb\'
print[rtest]
9Đây là bằng chứng
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
0Và nó có thể dễ dàng ngoại suy thành một chức năng nếu cần
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
1Đã trả lời ngày 11 tháng 7 năm 2021 lúc 1:57Jul 11, 2021 at 1:57
1
Tôi đã viết một chức năng nhỏ .. nhưng làm việc cho tôi
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
2Đã trả lời ngày 27 tháng 5 năm 2020 lúc 18:22May 27, 2020 at 18:22
0
Đây là một giải pháp đơn giản.
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
3print[directory]
test = 'C:\\Windows\Users\alexb\'
print[repr[test]]
4Đã trả lời ngày 10 tháng 3 năm 2021 lúc 10:42Mar 10, 2021 at 10:42