python在read()中将“\”添加到“'”

2024-04-27 00:19:28 发布

您现在位置:Python中文网/ 问答频道 /正文

文件中有以下文本:

{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash -ex","\n","echo 'Region name is:'",{"Ref":"AWS::Region"},">>~/user-data.log","\n"]]}}

我从文件中读取它并将其写入一个文件,如:

with open(user_data['file'], "r") as f:
                user_data_script = f.read().splitlines()
lc_arguments['user_data_script'] = user_data_script

但结果是:

{\"Fn::Base64\":{\"Fn::Join\":[\"\",[\"#!/bin/bash -ex\",\"\\n\",\"echo 'Region name is:'\",**{\"Ref\":\"AWS::Region\"}**,\">>~/user-data.log\",\"\\n\"]]}}

注意它是如何将\添加到每个"字符的。我该如何避免这种情况?它为什么要这样做?你知道吗


Tags: 文件nameechobashrefdatabinis
1条回答
网友
1楼 · 发布于 2024-04-27 00:19:28

当使用.splitline()方法时,您会得到一个列表,并且您可能会将整个列表写入文件(这可能是导致问题的原因)。你知道吗

试着这样做(对我有用):

with open(r'C:\Users\USER\PycharmProjects\untitled\abcd.txt', "r") as f: #in this file i putted your string
   user_data_script = f.read().splitlines()
with open('abcde.txt','w') as f2:
   f2.write(user_data_script[0]) #write the first line and *not* the entire list.

写的是什么abcde.txt文件是:

{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash -ex","\n","echo 'Region name is:'",{"Ref":"AWS::Region"},">>~/user-data.log","\n"]]}}

希望这对你有帮助!!你知道吗

相关问题 更多 >