Как прочитать большое количество текстовых файлов в программном обеспечении Python и преобразовать данные в файл образца?

#python #python-3.x #dataframe #text #read-text

#python #python-3.x #dataframe #текст #чтение-текст

Вопрос:

Я получаю информацию из приложения. Я привел очень маленький пример следующим образом.

 import pandas as  pd
df = [{'etelat':{'name' : 'sajjad1' , 'last_name' : 'esma1' },

       'class_id':{'id':101 , 'name_os' : 'win'}}, 

       {'etelat':{'name' : 'sajjad2' , 'last_name' : 'esma2' },

       'class_id':{'id':102 , 'name_os' : 'mac'}}]
df
type(df)
# Import pandas library
import pandas as pd
# initialize list of lists
data = [['sajjad1', 'esma1',101,'win'], ['sajjad2', 'esma2',102,'mac'] ] 
# Create the pandas DataFrame
df_new = pd.DataFrame(data, columns = ['etelat_name', 'etelat_last_name','class_id_id', 'class_id_name_os'])
# print dataframe.
df
 

1- В данном случае он отвечает правильно, но если нам нужны данные, которые представлены в виде текста, у меня возникнут проблемы.

2- Если данные находятся в папке, а количество текстовых файлов равно 50, если мы хотим вызвать желание файлов с кодом. Как устроен этот код? введите описание изображения здесь

Комментарии:

1. Вы хотите прочитать data (список списка) и распечатать его как pandas df? или вы просто хотите читать из текстового файла и печатать каждую строку?

2. @dariyoush Я хочу прочитать все текстовые данные. Затем я конвертирую этот прочитанный файл в dataform.

Ответ №1:

Если у вас есть список списков в файле, подобном следующему:

example.txt

 [['sajjad1', 'esma1',101,'win'], ['sajjad2', 'esma2',102,'mac'],
['sajjad3', 'esma1',103,'win'], ['sajjad4', 'esma2',104,'mac'] ] 

 

вы можете прочитать файл и преобразовать его в фрейм данных pandas:

 import pandas as pd

columns = ['etelat_name', 'etelat_last_name','class_id_id', 'class_id_name_os']
with open('example.txt', 'rb') as file:
    data = eval(file.read())
  
df = pd.DataFrame(data=data, columns=columns)
print(df)
 

выходной сигнал:

   etelat_name etelat_last_name  class_id_id class_id_name_os
0     sajjad1            esma1          101              win
1     sajjad2            esma2          102              mac
2     sajjad3            esma1          103              win
3     sajjad4            esma2          104              mac
 

Редактировать:

вы можете загрузить его и преобразовать в utf-8, а затем получить список словарей, с которыми вы можете иметь дело.

 import ast
lst = []
with open('example.txt', 'rb') as file:
    content = file.readlines()
for item in content:
    temp = item.decode('UTF-8')
    lst.append(ast.literal_eval(temp))
print(last)
 

вывод:

 [({'etelat': {'name': 'sajjad1', 'last_name': 'esma1'}, 'class_id': {'id': 101, 'name_os': 'win'}},), ({'etelat': {'name': 'sajjad2', 'last_name': 'esma2'}, 'class_id': {'id': 102, 'name_os': 'mac'}},)]
 

протестированный файл с:

 {'etelat':{'name' : 'sajjad1' , 'last_name' : 'esma1' },'class_id':{'id':101 , 'name_os' : 'win'}}, 
{'etelat':{'name' : 'sajjad2' , 'last_name' : 'esma2' },'class_id':{'id':102 , 'name_os' : 'mac'}},
 

Комментарии:

1. Моя проблема в том, что я не могу читать как строку. Я чувствую, что файл json. Данные были получены из пакета поиска Twitter. Примерные данные: drive.google.com/file/d/1QdhQk34A12K-lA8jsShlENtzhdsZ2RmF/view