簡體   English   中英

Python - 將字符串轉換為列表

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

首先, 永遠不要命名變量liststring 第一個是內置類的名稱,第二個是標准庫中的模塊。

您應該避免使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM