写在前面
本文使用的python版本是python2.7.18
一、对目录(文件夹)和文件的处理
依赖库:
import os
import sys
1.1 明确需求
要求:将data文件中的每个子文件夹下的txt文件都根据子文件夹的名称命名。然后所有的文件都转存到另一个目录中,且原目录中的文件所有数据不变。
1.2 进入目录找数据
我在这里设定:去具有多个目录里去寻找数据,也就是说,每个目录里都有自己需要操作的数据
#进入每个子目录
for son_dir in dir:
#拼接子目录
i = 1
#拼接目录,path为子目录
path = os.path.join(dir, son_dir)
path_file = path
for file in os.listdir(path_file):
#判断是否有文件:
opr_file = os.path.join(path_file,file)
print file
#目标文件是否
if os.path.isfile(opr_file) and ".txt" in file:
#拼接
file_path = os.path.join(path_file, file)
print file_path
#另存为shutil.copy()
shutil.copy(file_path, toDir)
#新字符串拼接
new_file_path = os.path.join(toDir, file)
#设置新文件名
new_name=new_file_path.replace(new_file_path,"mytext%d-%d.txt"%(ans_dir[j],i))
#重命名
os.rename(os.path.join(toDir,file),os.path.join(toDir,new_name))
i += 1
j += 1
print ("End")
这段代码中的几个核心是:
os.path.join(字符串1,字符串2)
:拼接字符串称为一个新的目录地址或文件地址os.listdir(路径)
:将路径下的所有目录名称输出为列表shutil.copy(A,B)
:将文件从地址A,复制到地址Breplace(A,B)
:设执行的文件名,把原来的文件名A设置为后面的字符串Bos.rename(A,B)
:把A的名字修改为B的名字
二、对excel数据表的处理
import xlrd
对excel表的操作比较 容易,常用到的有以下几种方法:
xlrd.open_workbook(路径)
:打开excel文件的方法excel.sheet_by_name("device_info")
:根据查找工作表名称的方法找到需要的工作表。当然python也提供根据先后顺序的索引的方法。(excel是xlrd.open_workbook得到的名称)device_info.nrow
:获取工作表的行数(device_info是工作表的名称)device_info.cell(device_info_row,0).value
:获取某一个cell里的数据
#coding=utf-8
import xlrd
#打开excel表
test = xlrd.open_workbook("./data/test.xlsx")
#选择工作表
name = test.sheet_by_name("test")
#得到总行数
rows = name.nrows
ans = {}
#遍历每一条数据
for row in range(0,rows):
key = int(name.cell(row,0).value)
value = str(name.cell(row,1).value)
ans[key] = value
print ans