马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 meiszp 于 2017-6-6 23:23 编辑
写了下面的代码,目的是将文件里的6列数据每列数据除于一个数。但代码有些问题,麻烦帮忙修改下。
(1)让6列数据像原来一样保留相同的小数位数,
(2)让6列数据像原来一样每列对齐,
(3)代码中的number是统计完成的文件数的,但值一直是1。
数据格式见附件
012_002.zip
(558.28 KB, 下载次数: 1)
# -*- coding: utf-8 -*-
import os
import shutil
a="."+input("更改的文件扩展名:")
foldername=input("结果文件夹名:") #输入要创建的文件名
folderlocation=os.path.dirname(os.getcwd())#当前目录的上一级目录
mulu=os.path.join(folderlocation,foldername) #获取创建文件夹所在的路径
#print a
if os.path.isdir(mulu)==True:
print(mulu, "文件目录已存在,是否删除目录内所有文件!Y/N")
c=input()
if c=="Y"or c=="y":
shutil.rmtree(mulu)
os.mkdir(mulu)
else:
print("请确认文件夹下无创建的同名文件后,按任意键继续执行")
input( )
else:
os.mkdir(mulu)
print(mulu,"文件目录不存在,已创建!")
#以上代码是在上一级创建一个用于存放新文件的文件夹
titleline1='Mx My Mz Fx Fy Fz'+'\n'
titleline2='kNm kNm kNm kN kN kN'+'\n'
for root, dirs, files in os.walk(".",topdown=True):
for filename in files:
li=os.path.splitext(filename) #分割文件名得到列表[文件名,扩展名]
if li[1]==a:
name=li[0]
b=mulu+'\\%s.txt'%name
filelocation=os.path.join(root,filename)
with open(filelocation,'r')as file_object,open(b,'w')as newfile:
number=0
newfile.write(titleline1) #将titleline1写入
newfile.write(titleline2) #将titleline2写入
for line in file_object:
datalist=line.split() #分割数据,生成列表
data1=float(datalist[0])/1000
data2=float(datalist[1])/1000
data3=float(datalist[2])/1000
data4=float(datalist[3])/1000
data5=float(datalist[4])/1000
data6=float(datalist[5])/1000
newline=str(data1)+' '+str(data2)+' '+str(data3)+' '+str(data4)+' '+str(data5)+' '+str(data6)+'\n'
newfile.write(newline)
number=number+1
print(filelocation+"完成,第%s个完成"%number)
print( '结果文件目录',mulu,"共%s个文件"%number)
|