#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 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
Примечание: когда я передаю файловый объект в split(file_object), я получаю следующее
['ABCDEFGHIJKLMNOPQRSTUVWXYZ']
Но когда я передаю строку текста в split (‘Это другая строка.’), я получаю это:
['T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', 'n', 'o', 't', 'h', 'e', 'r', ' ',
't', 'e', 's', 't', '.']
Ответ №1:
Просто, просто прочитайте и примените list()
😉
with open(r'C:UsersLizDesktopPYTHON PROBLEMScipherUpper.txt') as f:
myList = list(f.read().strip())
Получить myList
в качестве вашего списка
Комментарии:
1. Именно то, что я искал. Спасибо!
Ответ №2:
Возвращаемый тип readlines()
— list , поэтому вы в основном делаете это:
string = ['ABC..', ...]
[char for char in string]
где char равно ‘ABC ..’
итак, вам нужно выполнить итерацию по результату readlines:
testing = []
for line in f.readlines():
testing = testing split(line)
или прочитайте одну строку с readline()
помощью instead .
Ответ №3:
split
выполняется ли итерация объекта, который он получает
При передаче file_object
строки файла повторяются. Существует только одна строка, поэтому вы получаете первую строку в виде строки.
testing = split(file_object) # >> ['ABCDEFGHIJKLMNOPQRSTUVWXYZ']
Когда вы передаете строку, символы строки повторяются, поэтому вы получаете список символов.
print(split('This is another test.')) # >> ['T', 'h', 'i', 's', ....