zoukankan      html  css  js  c++  java
  • 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: emp*.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: emp*.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:UsersWYDesktopimgsss"):#
    # # print(i)
    # print("路径",i[0])
    # print("目录",i[1]) #判断里面还有没有文件夹
    # print("子文件",i[2])
    # 路径 C:UsersWYDesktopimgsss
    # 目录 []
    # 子文件 ['1MX7eWUF.png', 'dha61HkL.png', 'QtqSWMRl.png', 'Ry0k3cbF.png', 'WbExuoDC.png']

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

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

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

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

    # C:UsersWYAppDataLocalProgramsPythonPython36python.exe E:/untitled1/Chatroom/app01/tests.py
    # C:UsersWYDesktopimgsss1MX7eWUF.png
    # C:UsersWYDesktopimgsssdha61HkL.png
    # C:UsersWYDesktopimgsssQtqSWMRl.png
    # C:UsersWYDesktopimgsssRy0k3cbF.png
    # C:UsersWYDesktopimgsssWbExuoDC.png
    # C:UsersWYDesktopimgsss11新建 WinRAR ZIP 压缩文件.zip
    # C:UsersWYDesktopimgsss11新建位图图像.bmp
    # C:UsersWYDesktopimgsss11新建文本文档.txt
    # C:UsersWYDesktopimgsss113新建 Microsoft Word 文档.docx
    # C:UsersWYDesktopimgsss113新建 WinRAR 压缩文件.rar
    # C:UsersWYDesktopimgsss1134 44.bmp
    # C:UsersWYDesktopimgsss1134 44.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:UsersWYAppDataLocalProgramsPythonPython36Libsite-packages
    # 艺赛琪设计器 C:uebapluginCom.Isearch.Func.PythonLibsite-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:UsersWYDesktopimgsss"
    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





  • 相关阅读:
    线段树【加强】
    ATM(BZOJ 1179)
    Trick or Treat on the Farm
    欧拉回路 HDU
    无序字母对(luogu 1314)
    MooFest
    Snowflake Snow Snowflakes(POJ 3349)
    Firetruck(UVA 208)
    B进制星球(luogu 1604)
    遍历一个树的所有子节点,画出该树,深度不定,广度不定,适用于任何树,深度优先算法
  • 原文地址:https://www.cnblogs.com/xiaoluoboer/p/9597201.html
Copyright © 2011-2022 走看看