如何用Python读取txt文件:提取首行到变量,剩余内容转DataFrame
解决方法
这里有两种简洁的方式实现你的需求:
方法一:先提取首行服务器信息,再加载剩余数据
import pandas as pd # 读取首行并提取服务器名 with open('file1.txt', 'r') as f: first_line = f.readline().strip() server_name = first_line.split()[0] # 取首行第一个元素作为服务器名 # 读取文件剩余内容为DataFrame,跳过首行,适配多空格分隔 df = pd.read_csv('file1.txt', sep='\s+', skiprows=1) # 给DataFrame新增server列,统一填充服务器名 df['server'] = server_name
方法二:用pandas分两次读取文件
import pandas as pd # 仅读取首行获取服务器名 first_row = pd.read_csv('file1.txt', sep='\s+', nrows=1, header=None) server_name = first_row.iloc[0, 0] # 读取剩余数据,跳过首行 df = pd.read_csv('file1.txt', sep='\s+', skiprows=1) # 添加server列 df['server'] = server_name
关键细节说明:
sep='\s+':匹配任意数量的连续空格,完美适配你文件中多空格分隔的格式;也可以用delim_whitespace=True替代,效果一致。skiprows=1:让pandas跳过第一行,这样文件的第二行就会被正确识别为DataFrame的表头,解决你之前遇到的表头混乱问题。- 提取服务器名时用
split()[0],是因为首行的服务器名是第一个元素,若需要首行其他信息,可通过调整索引获取。
内容的提问来源于stack exchange,提问作者Kavya shree
相关产品推荐
相关产品推荐

