Python–将字符串转换为lis

2024-10-04 03:16:21 发布

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

我在为自己的“云服务器”工作。我有一个工具来列出服务器上的文件。你知道吗

flist = os.listdir("C:/Server")
conn.send(bytes("str(flist), "UTF-8"))        

这将向客户端发送一个列表,客户端将其转换为字符串。(大概是这样:['Arcer.exe', '启动程序.exe', '文档.txt']) 现在如何将字符串转换回列表?你知道吗

string = "[' Arcer.exe', 'Launcher.exe', 'Document.txt']"
list = []
list = string.convert  #pseudo method
print(list[0]) #Arcer.exe
print(list[1]) #Launcher.exe

Tags: 文件工具字符串服务器txt客户端列表string
3条回答

首先,从不命名变量liststring。第一个是内置类的名称,第二个是标准库中的模块。你知道吗

您应该避免使用Python变量的字符串表示,因为读写它们是没有效率的。但是,如果没有其他选项,可以使用^{}

from ast import literal_eval

x = "[' Arcer.exe', 'Launcher.exe', 'Document.txt']"
y = literal_eval(x)

print(y, type(y))

[' Arcer.exe', 'Launcher.exe', 'Document.txt'] <class 'list'>

您可以从ast模块使用literal_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)重新加载列表

相关问题 更多 >