我的数据每一行是如图这样的带空格的两个数据,但用excel打开后只会在第一列的单元格里
我希望可以实现用excel打开也是两列的那种,不知道可不可以
一定会采纳的!谢谢大家!
import codecs
f = codecs.open('D:/data/Ni.MTR', 'r', 'ansi')
line = f.readline() # 以行的形式进行读取文件
list1 = []
while line:
a = line.split(",")
b = a[1:3] # 这是截取按逗号分隔后的第二个和第三个数据
list1.append(b) # 将其添加在列表之中
line = f.readline()
f.close()
t = ' '
s = ' '
with open('D:/data/try.txt', 'w+') as f_out:
for i in list1: #为了把list1用i表示出来
for j in range(len(i[0])):
t = t + i[0][j] # list1里第i个元素(数)的第一列数据的第j个元素(数字)转化成字符串
for j in range(len(i[1])):
s = s + i[1][j] # list1里第i个元素(数)的第二列数据的第j个元素(数字)转化成字符串
f_out.write(t)
f_out.write(s)
f_out.write('\n')
t =' ' #清空
s =' '
方法1:因为格式统一,可以使用pandas 的操作,相对简单,如下:
import pandas as pd
df = pd.read_table('test.txt',delimiter = ' ',header = None) # 指定已空格为分隔,列名称取默认值
df.columns = ['column1','column2'] #手动修改列名称
df.to_excel('test.xlsx') #保存
方法2:
使用openpyxl模块:
from openpyxl import Workbook
workbook = Workbook()
sheet = workbook.active
with open('test.txt') as f:
results = f.readlines()
for result in results:
ls = result.split()
sheet.append(ls)
workbook.save('test1.xlsx')
可以使用split这个方法分割