18-09-06天津 关于Excel的一些操作

1 字符串分后后一个返回值是个list  2个以上就是字符串
a = '/sldj/fj/'
b ,c = a.strip('/').split('/')
print(b,c) # sldj fj

2关于os.listdir() 获取目录的文件按照字母排序
# 针对于一个目录下的文件 (图片等) 截图完成后进行按时间排序 项目暂时没用因为开始获取也得截图不移动永远是第一个
# DIR = "E:\\fund_data\\imgsss" #[ 'uRWblBVj.png', 'XldRO9Cs.png','YkDsf08z.png']
# # 注意,这里使用lambda表达式,将文件按照最后修改时间顺序升序排列
# os.path.getmtime() 函数是获取文件最后修改时间
# os.path.getctime() 函数是获取文件最后创建时间
# dir_list = os.listdir(DIR) #按照字母顺序排序
# dir_list = sorted(dir_list,key=lambda x: os.path.getctime(os.path.join(DIR,x)))
# print(dir_list) #按照创建的时间排序['YkDsf08z.png', 'uRWblBVj.png', 'XldRO9Cs.png']

def move_pic(fund_name):
#时间获取的昨天的时间并更换格式
now_time = datetime.datetime.now()
yesterday = now_time + datetime.timedelta(days=-1)
yesterday = yesterday.strftime('%Y%m%d')
newdir="E:\\fund_data\\"+fund_dir+"\\pic"+str(yesterday) #新目录是PIC+日期
path = "E:\\fund_data\\imgsss\\" #临时目录
dirs_pic = os.listdir(path) #把获取的图片名字按字母排序 生成一个文件排序的列表
#print(dirs_pic) []
#对以上获取按字母排序的目录文件列表排序 以是按照创建时间对文件排序
# oldfile_list=sorted(dirs_pic,key=lambda x: os.path.getctime(os.path.join(path,x
# )))
oldfile = path+oldfile_list[0] #路径+文件名
# print("1oldfile======================================",oldfile)

#获取临时目录下的文件列表
# newfile = newdir+"\\"+fund_name+".jpg"
#新文件名字,bankname是传入的参数
#print(oldfile)
#print(newfile)
if os.path.exists(newfile): #必须先判断目标目录是否存在文件
os.remove(newfile)
os.rename(oldfile,newfile)


3关于glob.glob的用法比os 好用可以确定数据范围类
fs = glob.glob(r'c:\temp\*.xlsx')
fs.sort(key=lambda fn: os.path.getmtime(fn) if not os.path.isdir(fn) else 0)
newest_file = fs[-1]
"""


import glob #glob模块用来查找文件目录和文件,常见的两个方法有glob.glob()和glob.iglob(),
# 可以和常用的find功能进行类比,glob支持*?[]这三种通配符
# 以下是林总推荐的
# fs = glob.glob(r'c:\temp\*.xlsx')
# fs = glob.glob(r'E:\南京培训资料2018-0813\*.docx')
# fs.sort(key=lambda fn: os.path.getmtime(fn) if not os.path.isdir(fn) else 0)
# newest_file = fs[0]
# print(newest_file)
# for i in fs:
# print(i)

# 4 关于os.walk 获取路径 文件夹 文件名等
#os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
# top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
# root 所指的是当前正在遍历的这个文件夹的本身的地址
# dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
# files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)

# 第一种:imgss 中只有几张图片没有文件夹
# for i in os.walk(r"C:\Users\WY\Desktop\imgsss"):#
# # print(i)
# print("路径",i[0])
# print("目录",i[1]) #判断里面还有没有文件夹
# print("子文件",i[2])
# 路径 C:\Users\WY\Desktop\imgsss
# 目录 []
# 子文件 ['1MX7eWUF.png', 'dha61HkL.png', 'QtqSWMRl.png', 'Ry0k3cbF.png', 'WbExuoDC.png']

# 第二种:imgss 中只有几张图片和文件夹11(目录)

# for i in os.walk(r"C:\Users\WY\Desktop\imgsss"):#
# print("路径",i[0])
# print("目录",i[1]) #判断里面还有没有文件夹 有就会递归操作循环出来
# print("子文件",i[2])

# 路径 C:\Users\WY\Desktop\imgsss
# 目录 ['11']
# 子文件 ['1MX7eWUF.png', 'dha61HkL.png', 'QtqSWMRl.png', 'Ry0k3cbF.png', 'WbExuoDC.png']
# 路径 C:\Users\WY\Desktop\imgsss\11
# 目录 []
# 子文件 ['新建 WinRAR ZIP 压缩文件.zip', '新建位图图像.bmp', '新建文本文档.txt']

# 第三种 三层以上所有路径+名字
# C:\Users\WY\Desktop\imgsss\11\3\4 4
# for i in os.walk(r"C:\Users\WY\Desktop\imgsss"):#
# for j in i[2]:
# a_f= i[0]+"\\"+ j
# print(a_f)

# C:\Users\WY\AppData\Local\Programs\Python\Python36\python.exe E:/untitled1/Chatroom/app01/tests.py
# C:\Users\WY\Desktop\imgsss\1MX7eWUF.png
# C:\Users\WY\Desktop\imgsss\dha61HkL.png
# C:\Users\WY\Desktop\imgsss\QtqSWMRl.png
# C:\Users\WY\Desktop\imgsss\Ry0k3cbF.png
# C:\Users\WY\Desktop\imgsss\WbExuoDC.png
# C:\Users\WY\Desktop\imgsss\11\新建 WinRAR ZIP 压缩文件.zip
# C:\Users\WY\Desktop\imgsss\11\新建位图图像.bmp
# C:\Users\WY\Desktop\imgsss\11\新建文本文档.txt
# C:\Users\WY\Desktop\imgsss\11\3\新建 Microsoft Word 文档.docx
# C:\Users\WY\Desktop\imgsss\11\3\新建 WinRAR 压缩文件.rar
# C:\Users\WY\Desktop\imgsss\11\3\4 4\4.bmp
# C:\Users\WY\Desktop\imgsss\11\3\4 4\4.txt

#5 获取Excel 中每个sheet

# 获取每一张excel表的sheet名称 mypath_files (路径+文件名)
# import pandas as pd
 def get_sheet(mypath):
df = pd.read_excel(mypath,None)
sheet_list = df.keys()
return sheet_list

# 6 python的包安装的路径 和自动化设计器的包的添加??????????????
# python 包的地址:C:\Users\WY\AppData\Local\Programs\Python\Python36\Lib\site-packages
# 艺赛琪设计器 C:\ueba\plugin\Com.Isearch.Func.Python\Lib\site-packages

#7 python 创建一个excel 表格 可以输入一些数据
from xlwt import Workbook
def create(name):
import xlwt
book = Workbook(encoding='utf-8')

sheet1 = book.add_sheet('Sheet 1')

sheet1.write(0,0,"我是第一行第一列")
sheet1.write(0,1,"我是第一行第二列")

sheet1.write(1,0,"我是第2行第一列")
sheet1.write(1,1,"我是第2行第二列")

# 保存Excel book.save('path/文件名称.xls')
# book.save('E:/fund_data/Excel_datas/测试2018-09-06/ww.xls')
# book.save('E:/fund_data/Excel_datas/测试2018-09-06/%s.xls'% 'ccc')#替换表的名字 %s 方法
book.save('E:/fund_data/Excel_datas/测试2018-09-06/{}.xls'.format(name) )#替换表的名字format方法
create("传参数")

====1创建一个当前时间的文件夹和在这个文件夹里写入一个自定义的Excel 文件===

1创建目录
def create_dir1(fund_dir):
now_time = datetime.datetime.now()
today = now_time + datetime.timedelta(days=0)
today = today.strftime('%Y-%m-%d')
newdir="E:\\fund_data\\"+fund_dir+"\\"+fund_dir+str(today)
if not os.path.exists(newdir):
os.makedirs(newdir)
print('====newdir====',newdir)
return newdir


def create_excel(fund_dir,fund_name):
newdir = create_dir1(fund_dir)
book = Workbook(encoding='utf-8')
sheet1 = book.add_sheet('Sheet 1')

#pycharm 写法(/) book.save('E:/fund_data/Excel_datas/测试2018-09-06/{}.xls'.format(name) )#替换表的名字format方法

#设计器的写法(\\) book.save(newdir+"\\{}.xls".format(fund_name))
book.save(newdir+"\\{}.xls".format(fund_name))

======2利用os.walk()来便利所有的当前路径+文件名并set去重=====================================
import pandas as pd
import os
import xlrd
# 递归获取文件名
xpath = r"C:\Users\WY\Desktop\imgsss"
xtype = "xls"
typedata = []
name = []
filename_list = []
raw_data = []
file_path = []

"""
def collect_xls(list_collect, type1):
# 取得列表中所有的type文件
for each_element in list_collect:
if isinstance(each_element, list):
collect_xls(each_element, type1)
elif each_element.endswith(type1):
typedata.insert(0, each_element)
return typedata


# 读取指定路径下所有文件夹中的xls文件
def read_xls():
# 遍历路径文件夹
for file in os.walk(xpath):#1返回当前文件路径 2目录(文件夹)3当前文件路径下的文件的列表
for each_list in file[2]:
file_path = file[0] + "\\" + each_list
# os.walk()函数返回三个参数:路径,子文件夹,路径下的文件,利用字符串拼接file[0]和file[2]得到文件的路径
print("=file_path=",type(file_path),file_path) #str url+xx.pbg
name.insert(0, file_path)
print("==name==",type(name),name) #str list
all_xls = collect_xls(name, xtype)
print(all_xls,'----------------')
all_xls = list(set(all_xls))
print('+++++++++++all_xls',type(all_xls),all_xls) #list

for filename in all_xls:
if '2018-9' in filename:
filename_list.append(filename)

# print('非本次所需文件')
print(filename_list)
return filename_list

read_xls()

"""





# path = 'X:\\GS\\CNGS-WQ\\Logistics\\Common Logistic\\Packing list\\2018 packing list\\'
# traverse(path)

=======3获取每一张excel表的sheet名称====================
mypath = "C:\\Users\\WY\\Desktop\\imgsss\\00000000000000000000000000000.xls"
def get_sheet(mypath):
df = pd.read_excel(mypath, None)
sheet_list = df.keys()
print(sheet_list) #odict_keys(['Sheet1', 'Sheet2', 'Sheet3', 'Sheet4'])
return sheet_list
get_sheet(mypath)

======4写入数据====================
def write_data(li, numa):
for x in li:
wb = xw.Book(r'C:/Users/jiang/Desktop/测试.xlsx')
sht = wb.sheets[0]
sht.range('A{0}'.format(numa)).value = x
wb.save()
numa += 1

print('测试*******', numa)
print('测试状态:', numa)
return numa





猜你喜欢

转载自www.cnblogs.com/xiaoluoboer/p/9597201.html