Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python–;将字符串转换为列表_Python_String_List - Fatal编程技术网

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']