[英]How to convert a list into a string and then convert it back in python?
[英]convert list to string then back it to list [ Python]
我有一個問題,它是關於從 List 轉換為 String 來編輯它
我有這些名稱的文件文本內容
Roby
Bucky
johan
然后我想在每個旁邊添加OK:1
所以我做這個代碼
Names='a.txt' # here is the names
O=open(Names,'r') # we open the file content the names
iamList=O.readlines() # read the name it would be List !
imSting=str(iamList) # convert it to string
Edit=imSting.replace(r"\n","Ok:1") # Editing by adding
noname=Edit
noname=noname.split()
for PT in noname:
PT.strip('[')
print PT
我得到了這個結果['RobyOk:1', 'BuckyOk:1', 'johan']
我想刪除這些東西[, '
我嘗試了strip
和replace('[','')
有任何想法嗎?
解決方案:
f = open('a.txt')
names = [line.strip() + 'Ok:1' for line in f.readlines()]
f.close()
for name in names:
print(name)
我使用了“line.strip()”,因為 os.linesep(通常是“\n”)可能與文件中使用的行分隔符不同,因此每行仍然帶有一個“\n”。
關於您的方法:因為 iamList 是一個列表,所以由 str(iamList) 創建的該列表的表示已經包含括號“[”和逗號“,”:這些是字符串表示的一部分。 print('imSting: ' + imSting)
會顯示這個。 因此,您可以直接從 imSting 將 '\n' 替換為 'Ok:1' 並將新字符串拆分為 ', ' 部分上的列表:
(imSting.replace(r"\n", 'Ok:1')[2:-2] + 'Ok:1').split("', '")
[2:-2]
僅返回 [' 和 '] 之間的字符,因此有效地刪除了括號。
第一個解決方案幾乎可以是單行的,並且更容易閱讀,因此更“Pythonic”。 但是,養成閱讀后關閉文件的習慣會更好。
iamList = O.readlines()
會給你一個列表。
您不想將該列表轉換為字符串。 不惜一切代價避免字符串操作; 這是不好的編碼習慣。 (出於這個原因,我也擔心你在每個字符串中添加'Ok:1'
的原因。)
相反,只需執行[x+' OKAY.' for x in yourFile.read().splitlines()]
[x+' OKAY.' for x in yourFile.read().splitlines()]
但是,您應該說明為什么要添加“Ok:1”,因為您似乎做錯了事。 你應該說出你真正想做的事情。
您的代碼不起作用。 最后一行末尾沒有換行符,所以你沒有“Ok:1”。
嘗試這個:
[b.replace("\n","") + "Ok:1" for b in open("C:\\py\\a.txt","r")]
“擴展”版本:
newList = []
for b in open("C:\\py\\a.txt","r"):
newList.append(b.replace("\n","") + "Ok:1")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.