Tôi biết về thoát khỏi dấu gạch chéo ngược trong lập trình. Tuy nhiên tôi đang đi qua trong một đối số dòng lệnh vào một chương trình Python để phân tích cú pháp. Khoảng trống là không liên quan, tuy nhiên thông qua dòng lệnh, khoảng trắng không quan trọng. Vì vậy, tôi đang cố gắng để nối tất cả các đối số argv [] ngoại trừ phần tử đầu tiên thành một chuỗi để phân tích cú pháp. Tuy nhiên, một mã thông báo của một '\' đơn không bao giờ gặp phải trong vòng lặp for.Xử lý dấu gạch chéo ngược làm đối số dòng lệnh trong Python
Đối số dòng lệnh (chú ý khoảng trắng xung quanh '\'):
((1 * 2) + (3 - (4 \ 5)))
Chương trình:
import sys
string = ""
for token in sys.argv[1:len(sys.argv)]:
print(token)
if "\\" in r"%r" % token:
print("Token with \\ found")
string += token
print(string)
print("done")
Tại sao bạn không chuyển toàn bộ biểu thức dưới dạng một đối số? 'python myscript.py '((1 * 2) + (3 - (4 \ 5)))''. Ngoài ra, bash coi \ như là một khởi đầu của một chuỗi thoát và không gửi nó thông qua như một đối số, nhưng cmd không và gửi nó bình thường, cung cấp cho hành vi khác nhau trên hệ điều hành khác nhau. – Kolmar
Tôi đồng ý với @Kolmar, nó sẽ làm cho mọi thứ trở nên dễ dàng hơn nhiều trong python, và bạn không phải lo lắng về những gì trình bao làm đối số của bạn – Paco
Điều đó làm việc hoàn hảo. Cảm ơn tất cả! – tfbbt8