如何在Python软件中读取大量文本文件并将数据转换成样本文件?
How to read a large number of text files in Python software and convert data into a sample file?
我收到来自应用程序的信息。我举了一个非常小的例子如下。
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个,如果我们想用代码调用文件的愿望。这段代码如何?
enter image description here
如果您的列表列表在如下文件中:
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'}},
我收到来自应用程序的信息。我举了一个非常小的例子如下。
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个,如果我们想用代码调用文件的愿望。这段代码如何? enter image description here
如果您的列表列表在如下文件中:
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'}},