Python-如何将文件对象拆分为单个字符的列表?
我正在从文件对象导入数据。这很简单;它是一个.txt文件,数据是这样输入的:ABCDEFGHIJKLMNOPQRSTUVWXYZ 我试图让它成为一个单独的字符列表,例如Python-如何将文件对象拆分为单个字符的列表?,python,python-3.x,Python,Python 3.x,我正在从文件对象导入数据。这很简单;它是一个.txt文件,数据是这样输入的:ABCDEFGHIJKLMNOPQRSTUVWXYZ 我试图让它成为一个单独的字符列表,例如 my_list = ['A', 'B', 'C', 'D', ...etc.] 但它的表现是这样的: my_list = ['ABCDEFGHIBJK... etc.] 我哪里做错了 def split(string): return [char for char in string] # This opens
my_list = ['A', 'B', 'C', 'D', ...etc.]
但它的表现是这样的:
my_list = ['ABCDEFGHIBJK... etc.]
我哪里做错了
def split(string):
return [char for char in string]
# This opens a file, gets a file object, and returns it to the program.
def get_file_object1():
infile = open(r'#', 'r')
file_object = infile.readlines()
testing = split(file_object) # this is a test line
print(testing) # this is a test line
print(split('This is another test.'))
infile.close()
return file_object
注意:当我将file对象传递给split(file\u对象)时,我得到
['ABCDEFGHIJKLMNOPQRSTUVWXYZ']
但当我将一个文本字符串传递给split(“这是另一个字符串”)时,我得到:
['T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', 'n', 'o', 't', 'h', 'e', 'r', ' ',
't', 'e', 's', 't', '.']
简单,只需阅读并应用
list()
;-)
获取
myList
作为列表readlines()的返回类型是list,因此您基本上是这样做的:
string = ['ABC..', ...]
[char for char in string]
其中char等于'ABC..'
因此,您需要迭代readlines的结果:
testing = []
for line in f.readlines():
testing = testing + split(line)
或者改为使用
readline()
读取单行。split
正在迭代它接收的对象
当您传递file\u object
时,将迭代文件的行。只有一行,因此第一行作为字符串接收
testing = split(file_object) # >> ['ABCDEFGHIJKLMNOPQRSTUVWXYZ']
当你传递一个字符串时,字符串中的字符会被迭代,这样你就可以得到一个字符列表
print(split('This is another test.')) # >> ['T', 'h', 'i', 's', ....
正是我想要的。非常感谢。
print(split('This is another test.')) # >> ['T', 'h', 'i', 's', ....