[英]Python – Convert string to list
我正在為自己的“雲服務器”工作。 我有一個工具來列出服務器上的文件。
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
我建議使用json
模塊。
要發送列表,您可以將str(flist)
更改為json.dumps(flist)
然后在另一端使用flist = json.loads(string)
重新加載列表
您可以使用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']
首先, 永遠不要命名變量list
或string
。 第一個是內置類的名稱,第二個是標准庫中的模塊。
您應該避免使用Python變量的字符串表示,因為讀取和寫入它們不會有效。 但是,如果您沒有其他選項,則可以使用ast.literal_eval
:
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'>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.