Python–;将字符串转换为列表
我自己在“云服务器”工作。我有一个工具来列出服务器上的文件Python–;将字符串转换为列表,python,string,list,Python,String,List,我自己在“云服务器”工作。我有一个工具来列出服务器上的文件 flist = os.listdir("C:/Server") conn.send(bytes("str(flist), "UTF-8")) 这将向客户端发送一个列表,客户端将其转换为字符串。(类似以下内容:['Arcer.exe','Launcher.exe','Document.txt'] 现在如何将字符串转换回列表 string = "[' Arcer.exe', 'Launcher.exe', 'Documen
flist = os.listdir("C:/Server")
conn.send(bytes("str(flist), "UTF-8"))
这将向客户端发送一个列表,客户端将其转换为字符串。(类似以下内容:['Arcer.exe','Launcher.exe','Document.txt']
现在如何将字符串转换回列表
string = "[' Arcer.exe', 'Launcher.exe', 'Document.txt']"
list = []
list = string.convert #pseudo method
print(list[0]) #Arcer.exe
print(list[1]) #Launcher.exe
首先,永远不要命名变量列表
或字符串
。第一个是内置类的名称,第二个是标准库中的模块
您应该避免使用Python变量的字符串表示形式,因为读写它们不会有效率。但是,如果您没有其他选择,您可以使用:
从ast导入文字\u评估
x=“['Arcer.exe'、'Launcher.exe'、'Document.txt']”
y=文字值(x)
打印(y,类型(y))
['Arcer.exe','Launcher.exe','Document.txt']
您可以从ast
模块使用literal\u eval
:
from ast import literal_eval
string = "[' Arcer.exe', 'Launcher.exe', 'Document.txt']"
newList = literal_eval(string)
print(newList)
输出:
[' Arcer.exe', 'Launcher.exe', 'Document.txt']
如果您不想使用ast
模块,另一种方法是从字符串中删除括号,然后将其拆分为每个逗号,
字符,如下所示:
string = "[' Arcer.exe', 'Launcher.exe', 'Document.txt']"
newList = string[1:-1].replace("'","").split(",")
print(newList)
这将为您提供与上述相同的输出:
[' Arcer.exe', ' Launcher.exe', ' Document.txt']
我建议使用
json
模块
要发送列表,您可以将
str(flist)
更改为json.dumps(flist)
,然后在另一端,您可以使用flist=json.loads(string)
重新加载列表。请注意,如果任何字符串中有逗号,则最后一个将不起作用。
[' Arcer.exe', ' Launcher.exe', ' Document.txt']