问题/问题详情
我有一个文件 (blah.txt),其内容(列表)如下所示:
Key1 = ['A','B','C','D','E','F','G','H','I','J','K', 'L','M','N','O','P','Q','R','S','T','U','V','W','X ','Y','Z','']
在一个简单的 python 文件(称为 CAT.py)中,我执行以下命令:
infile = open('blah.txt', 'r')
Key1 = infile.readline()
infile.close()
Key1 = Key1.rstrip('\n')
print(Key1)
Key1 = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',' ']
print(''.join(Key1))
Key1 = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',' '] <---- THIS IS WHAT I DO NOT WANT
但是……
如果在一个单独的简单 python 文件(称为 DOG.py)中,我在列表上执行以下命令:
Key1 = ['A','B','C','D','E','F','G','H','I','J','K', 'L','M','N','O','P','Q','R','S','T','U','V','W','X ','Y','Z','']
打印(键1)
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ']
打印(''.join(Key1))
ABCDEFGHIJKLMNOPQRSTUVWXYZ <---- THIS IS WHAT I WANT
问题/问题
我最终想要的输出看起来像“ABCDEFGHIJKLMNOPQRSTUVWXYZ”,但对于我的生活,我无法弄清楚如何读取文件列表,然后将该列表转换为单个字符串。谁能告诉我我哪里出错了,并告诉我一些可以解决我的问题的代码?
最佳答案
在应用join
之前,您必须将string
转换为list
。
首先我们使用partition
来获取=
之后的部分。然后 ast.literal_eval
将从字符串中创建一个列表。
import ast
line = "Key1 = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',' ']"
data = line.partition('=')[2].strip()
elements = ast.literal_eval(data)
print(''.join(elements))
附加:您可以在打开文件的上下文中使用 with
。如果您这样做,Python 将为您关闭该文件。
with open('blah.txt', 'r') as infile:
line = infile.readline()
正如 jamylak 指出的:如果您控制文件,请不要像这样存储数据。如您所见,这并不容易处理。您可以将数据存储和读取为 JSON。
关于Python - 打开文件 - readline - 列表 - 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27394879/