Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-如何将文件对象拆分为单个字符的列表?_Python_Python 3.x - Fatal编程技术网

Python-如何将文件对象拆分为单个字符的列表?

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

我正在从文件对象导入数据。这很简单;它是一个.txt文件,数据是这样输入的:ABCDEFGHIJKLMNOPQRSTUVWXYZ

我试图让它成为一个单独的字符列表,例如

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', ....