【python学习】按行读取txt文件,将数据按列存入csv文件
在科研实验中,有时候会得到很多存储在txt文件的数据文件,这不利于直接用于画图,在此,使用python将txt文件中的数据按列存储进csv文件。这里面涉及几个知识点:函数、if结构、遍历文件夹、创建文件夹、移除文件、按行读取文件、去除字符串中的空格、列表添加元素、将输入按列存入csv文件。
·
按行读取txt文件,将数据按列存入csv文件
在科研实验中,有时候会得到很多存储在txt文件的数据文件,这不利于直接用于画图,在此,使用python将txt文件中的数据按列存储进csv文件。
【代码设计思路】
- 按行读取txt文件
- 去除每行数据两边的空格
- 使用split()去除字符串中的空格,形成列表
- 将列表元素提取存储在新列表
- 将新列表数据按列写入csv文件中
import os
import csv
def txt_data_to_csv(path,save_dir):
'''
该函数实现将txt文件中的数据存储在csv文件中
思路:
1.按行读取txt文件
2.去除每行数据两边的空格
3.使用split()去除字符串中的空格,形成列表
4.将列表元素提取存储在新列表
5.将新列表数据写入csv文件中
'''
files= os.listdir(path)#遍历文件夹中的所有文件,将文件名存储在列表中
for file in files: #遍历文件夹中的txt文件
file_path = os.path.join(path,file)
if not os.path.exists(save_dir):
os.makedirs(save_dir)
save_path=os.path.join(save_dir,'数据提取'+'from'+'_'+file+'.csv')
if os.path.exists(save_path):
os.remove(save_path) #如果已经存在该文件夹,移除
x_list=[]#新建空列表用于存储数据
y_list=[]
with open(file_path,'r') as f:#打开txt文件
lines=f.readlines()#按行读取文件,并按行存储为列表
for line in lines:#遍历存储了文件信息的列表
line = line.strip()#去掉每个元素中的前后空格
#print(line)
if line!='@Phi=0.0':
xy=line.split()#将txt文件中每行的空格去掉
x_list.append(xy[0])#提取txt文件每行的第一个元素
y_list.append(xy[1])#提取txt文件每行的第二个元素
rows = zip(x_list,y_list)#将列表按列存储
with open(save_path, "w", newline='') as f:
writer = csv.writer(f)
for row in rows:
writer.writerow(row)
调用函数:
path=r'D:\some files of others\name\test_txt'#txt文件所在文件夹路径
save_dir=r'D:\some files of others\name\data_from_test_txt'#csv文件存储所在文件夹
txt_data_to_csv(path,save_dir)
这里面涉及几个知识点:函数、if结构、遍历文件夹、创建文件夹、移除文件、按行读取文件、去除字符串中的空格、列表添加元素、将数据按列存入csv文件
更多推荐
已为社区贡献15条内容
所有评论(0)