Tôi đọc trong một chuỗi từ hộp văn bản GUI do người dùng nhập và xử lý thông qua pandoc. Chuỗi chứa chỉ thị latex cho phép toán có ký tự gạch chéo ngược. Tôi muốn gửi trong chuỗi như là một chuỗi thô để pandoc để xử lý. Nhưng một cái gì đó như '\ theta' sẽ trở thành một tab và 'heta'.python: làm thế nào để chuyển đổi chuỗi chữ thành chuỗi ký tự nguyên?
Làm cách nào để chuyển đổi chuỗi ký tự có chứa ký tự dấu gạch chéo ngược thành chuỗi thô ...?
Chỉnh sửa:
Cảm ơn develerx, cừu bay và unutbu. Nhưng không có giải pháp nào có vẻ giúp tôi. Lý do là có các ký tự bị gạch chéo khác không có bất kỳ hiệu ứng nào trong python nhưng lại có ý nghĩa trong latex.
Ví dụ '\ lambda'. Tất cả các phương pháp được đề xuất sản xuất
\\lambda
không được xử lý bằng cao su - nó sẽ vẫn là \ lambda.
Chỉnh sửa khác:
Nếu tôi có thể thực hiện công việc này, tôi nghĩ tôi nên thực hiện. @ Mark: Tất cả ba phương pháp đưa ra câu trả lời mà tôi không mong muốn.
a='\nu + \lambda + \theta';
b=a.replace(r"\\",r"\\\\");
c='%r' %a;
d=a.encode('string_escape');
print a
u + \lambda + heta
print b
u + \lambda + heta
print c
'\nu + \\lambda + \theta'
print d
\nu + \\lambda + \theta
Bạn có chắc chắn chuỗi thực sự chứa '\\ lambda' và không chỉ tăng gấp đôi lên khi bạn in nó? Thử in 'mystring [1:]' và xem liệu có còn '\' trong đó không. Nên có một số nhất quán - nếu '\ t' đang chuyển sang tab thì' \\ 'sẽ chuyển thành' \ '. –
Bạn có thể đăng 'repr' của chuỗi như nhận được từ hộp văn bản GUI và hiển thị mã bạn đang sử dụng để xử lý thông qua pandoc không? – unutbu
Thử nghiệm của bạn là không thực tế. Bạn không nhận được nó từ một hộp văn bản, bạn đang thiết lập nó với một chuỗi chữ, và Python đã chuyển đổi nó một cách không phù hợp bởi thời gian nó được gán cho 'a'. Không thể lấy lại văn bản gốc của bạn vào thời điểm đó. –