python文件常用操作

来源:互联网 发布:js获取传入的参数 编辑:程序博客网 时间:2024/05/22 03:16

python (glob os.path)常用文件操作:

  • python excel 操作
  • python批量重命名目录下(单个或者多个)文件

  • 目录以及文件名的一些操作(获取文件名不要扩展名without extension)

  • text 文件的读取


例如:
这里写图片描述

前面测试图片识别的时候需要将测试结果写到excel中
这里写图片描述
像这样批量重命名文件的话在linux中有很多常用的命令具体看我的bolg

直接上代码了

# _*_ coding:utf-8 _*_from os import listdirfrom os.path import isfile, joinimport globimport osimport errnofrom xlwt import *import timedef make_dir_not_exists(path):    try:        os.makedirs(path)    except OSError as exception:        if exception.errno != errno.EEXIST:            raisedef get_line_lst(filename):    """    return list of every line in file    :param filename the file to be readed        like '../dataset/dataset.txt':    :return like [['line1 1'], ['line2 2']]:    """    lst = []    with open(filename) as fp:        for line in fp:            lst.append(line)    return lstdef write_list_excel(file_name, title_lst, row_lst):    # excel operator handler    excel_handler = Workbook(encoding='utf-8')    excel_sheet_name = time.strftime('%Y-%m-%d')    excel_sheet = excel_handler.add_sheet(excel_sheet_name)    # write title    col_idx = 0    for item in title_lst:        excel_sheet.write(0, col_idx, item)        col_idx += 1    # write row contents, index->row    row_idx = 1    for row in row_lst:        col_idx = 0        for item in row:            excel_sheet.write(row_idx, col_idx, item)            col_idx += 1        row_idx += 1    # write/save excel to file    excel_handler.save(file_name)def test_write_list_excel():    file = 'F:/test.xlsx'    title_lst = ['姓名', '性别', '年龄', ]    row_lst = [['熊大', '男', 10], ['熊2', '男', '15'], ['强哥', '男', 25]]    write_list_excel(file, title_lst, row_lst)def batch_rename_files_in_dir():    """    signal level dir    :return:    """    base_dir = 'F:/ad_samples/img_voice_test/tencent_img/violence_samples/'    file_list = glob.glob(base_dir + "*.jpg")    i = 0    for f in file_list:        os.rename(f, os.path.join(base_dir, str(i) + '.jpg'))        i += 1def batch_rename():    """    two-level dir    added 2017/8/17, rename dir hello.jpg    :return:    """    # base_dir = 'F:/ad_samples/test_samples/'    sub_dir_list = glob.glob(base_dir + '*')    # print sub_dir_list ['F:/dir1', 'F:/dir2']    for dir_item in sub_dir_list:        files = glob.glob(dir_item + '/*.jpg')        i = 0        if len(files) == 0:            continue        for f in files:            # fname = 'xx' + str(i)            os.rename(f, os.path.join(dir_item, str(i) + '.jpg'))            i += 1def get_file_name():    file_path = 'E:/img/10.jpg'    print os.path.basename(file_path)    # 10.jpg    head, tail = os.path.split(file_path)    print head, tail    # E:/img 10.jpg    print os.path.splitext(file_path)    # ('E:/img/10', '.jpg')    print os.path.splitext(file_path)[0]    # E:/img/10    base = os.path.basename(file_path)    # 10.jpg    print os.path.splitext(base)    # ('10', '.jpg')    print os.path.splitext(base)[0]    # 10def all_subdir_join():    """    more details of sub dir search visits    https://stackoverflow.com/questions/2186525/use-a-glob-to-find-files-recursively-in-python    :return:    """    base_dir = 'F:/ad_samples/train_samples/others/'    sub_dir_lst = glob.glob(base_dir + "*")    # ['F:/dir1', 'F:/dir2']    new_sub_dir = [os.path.join(base_dir, item + '_flip') for item in os.listdir(base_dir)]    # ['F:/dir1_flip', 'F:/dir2_flip']    # find all the .c files in the dir of src    glob.glob(os.path.join('src', '*.c'))    # find all the .c files in the one level subdir of src    glob.glob(os.path.join('src', '*', '*.c'))    # print os.listdir(base_dir)    # ['dir1', 'dir2']    # print glob.glob(base_dir + "*")    # ['F:/dir1', 'F:/dir2']def get_all_files_name_in_dir(dir):    files = [f for f in listdir(dir)]    # like ['1.jpg', '10.jpg', '2.jpg', 'dir']    files = [f for f in listdir(dir) if isfile(join(dir, f))]    # doesn't contain directory    # like ['1.jpg', '10.jpg', '2.jpg']    files = [join(dir, f) for f in listdir(dir) if isfile(join(dir, f))]    # like ['E:/img\\1.jpg', 'E:/img\\10.jpg', 'E:/img\\2.jpg']    files = [f for f in listdir(dir) if f.endswith('.jpg')]    # like ['1.jpg', '10.jpg', '2.jpg']    files = glob.glob(dir + '/*.jpg')    # like ['E:/img\\1.jpg', 'E:/img\\10.jpg', 'E:/img\\2.jpg']    os.chdir(dir)    files = glob.glob('*.jpg')    # like ['1.jpg', '10.jpg', '2.jpg']    return filesif __name__ == '__main__':    # batch_rename()    batch_rename_files_in_dir()    test_write_list_excel()    # get_file_name()    # print get_all_files_name_in_dir('E:/rectimg')
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 村委会欠百姓征地补偿款不给怎么办 因为近亲人人都不看好的婚姻怎么办 碰到工作中特别积极的同事怎么办 丈夫车祸死亡妻子和孩子以后怎么办 丈夫死后妻子改嫁儿子不同意怎么办 满了60岁社保没满15年怎么办 捷豹的dpf灯亮了怎么办 朋友如新直销产品是你该怎么办 传福音接受了却被家人拦阻该怎么办 奶奶出钱由孙子抓奖中奖后怎么办 我不想学车了驾校不同意退学怎么办 2017年大学挂科面临退学怎么办 微信重新登录后东西全没了怎么办 宝宝吃鸡蛋过敏全身起红疹怎么办 180在产蛋鸡因断鸡减产怎么办 住友39熔接机熔接损耗大怎么办 支付宝实名认证刷脸失败怎么办 支付宝注册刷脸不是本人怎么办 小学科学只考88分中学怎么办 收银机关机时才上传数据是怎么办 刚做的系统玩cf卡屏怎么办 办健康证的资料掉了怎么办 刚刚办得的健康证掉了怎么办 房子都过户了银行贷不了款怎么办 我要办大病迁出应该怎么办啊? 遗产继承后户口没地迁出怎么办 安徽蒙城怎么办去韩国的签证的 夜间有人私自收停车费应该怎么办 上次摸不到环尾丝这次摸到了怎么办 法院判决书下来后对方不给钱怎么办 法院判决书下来了钱还保全么怎么办 深圳路边泊车不知道泊车编号怎么办 当事人进拘留所了我的工资怎么办 昆明公租房住满5年后怎么办 昆明公租房房子到期缴纳金怎么办 看守所犯人银行卡里钱没用完怎么办 中国邮政迟迟没有把信件寄到怎么办 拘留15天放出来还不肯还钱怎么办 人死在拘留所不让看监控怎么办 家人吸毒可他又不愿强戒怎么办 容留他人吸毒时签了强戒怎么办