我正在尝试获取一个Python脚本,该脚本将从剪贴板中获取代码并将其格式化为VS代码片段,最后将其放回剪贴板(通过Pyperclip)。
我想逃跑
我要替换
输入:
import pyperclip
string = """def print_string():
print("YOLO\n")
"""
x = string.replace("\\", "\\\\").replace("\"","\\\"").replace("\t","\\t")
pyperclip.copy(x)
实际输出: (从剪贴板粘贴)
def print_string():
print(\"YOLO
\")
预期输出: (可以在VS Code代码段的主体中几乎立即使用该方法)
def print_string():
\tprint(\"YOLO\\n\")
如何以某种方式编码我所缺少的东西?
答案 0 :(得分:0)
您只需要在字符串引号前加上字母r来代表原始字符串,并避免在字符串中使用反斜杠转义。像这样:
string = r"""def print_string():
print("YOLO\n")
"""
有关更多说明,请参阅官方文档。 String and Bytes literals
答案 1 :(得分:0)
我已经开始使用它了,而不是使用布鲁斯的方法。...下面是我的代码:
`
import pyperclip
string = pyperclip.paste()
my_list = []
for x in string.split("\r\n"):
my_string = x.replace("\\", "\\\\").replace("\"","\\\"").replace("\t","\\t").replace(" ", "\\t")
my_list.append(f"\"{my_string}\",")
value = "\n".join(my_list)
pyperclip.copy(value)
`