pandas读取txt---按行输入按行输出

2022-12-21 16:53:17 浏览数 (1)

 1.pandas读取txt---按行输入按行输出

代码语言:javascript复制
import pandas as pd
# 我们的需求是 取出所有的姓名
# test1的内容
'''
id name score
1  张三 100
2  李四 99
3  王五 98
'''
test1 = pd.read_table("test1.txt") # 这个是带有标题的文件
names = test1["name"] # 根据标题来取值
print(names)
'''
张三
李四
王五
'''

# test2的内容
'''
4  Allen 100
5  Bob 99
6  Candy 98
'''
test2 = pd.read_table("test2.txt", header=None) # 这个是没有标题的文件
names = test2[1] # 根据index来取值 
print(names)
'''
Allen
Bob
Candy
'''
代码语言:javascript复制
import pandas as pd
from paddlenlp import Taskflow
import json

path="nlp测试体育类文本.txt"
def get_textLine(path):
    string_list = []
    file_data = pd.read_table(path,encoding="UTF-8")
    for index, elem in file_data.iterrows():
        string_list.append(elem[0])
    return string_list

# print(get_textLine(path))

data_input=get_textLine(path)


schema = ['时间', '赛手', '赛事名称']
# ie.set_schema(schema)
# ie('2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌!')
# few_ie = Taskflow('information_extraction', schema=schema, task_path='./checkpoint/model_best')
few_ie = Taskflow('information_extraction', schema=schema)
# results=few_ie(['2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌.',
#         '2022年8月9日上午跳高决赛中国选手李大水以100分获得金牌'])


results=few_ie(data_input)
test = pd.DataFrame(data=results)
test.to_csv('excel2txt.txt', sep='t', index=False,header=False,index=False)
print("数据已导出")

2.with open的方式

代码语言:javascript复制
import pandas as pd
from paddlenlp import Taskflow
import json


 def openreadtxt(file_name):
     data = []
     file = open(file_name,'r',encoding='UTF-8')  #打开文件
     file_data = file.readlines() #读取所有行
     for row in file_data:
         data.append(row) #将每行数据插入data中     
     return data
data_input=openreadtxt("nlp测试体育类文本.txt")

schema = ['时间', '赛手', '赛事名称']
# ie.set_schema(schema)
# ie('2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌!')
# few_ie = Taskflow('information_extraction', schema=schema, task_path='./checkpoint/model_best')
few_ie = Taskflow('information_extraction', schema=schema)



results=few_ie(data_input)
 with open("test.txt", "w ") as f:    #a :   写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾
     for result in results:
         line = json.dumps(result, ensure_ascii=False)  #对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False
         f.write(line   "n")


print("数据已导出")

0 人点赞