geodesic吧 关注:38贴子:2,093
每天写一点,来源不定,可能是自己想的,可能是改自别人的,可能是抄别人的


1楼2013-04-10 17:59回复
    问题1:
    下载一些音频小说时,文件名字总是包含一些广告内容,比如网站的网址。为了清爽一些,可以给他们打扮打扮的说
    tag:文件批量重命名
    【问题图片】


    10楼2013-04-12 18:16
    回复
      【程序运行中】


      11楼2013-04-12 18:23
      回复
        【实际效果】


        12楼2013-04-12 18:24
        回复
          【代码】

          =================================================
          #适用于版本3.3
          import os
          import re
          import sys
          #代码设置
          #前缀、后缀、扩展名、正则串
          strPrefix = "大悬疑"
          strSuffix = "艾宝良"
          strFileExt = "mp3"
          strReGetNum = r"\D+(\d+).*"
          #预处理
          reGetNum = re.compile(strReGetNum)
          path = os.getcwd()
          fileList = os.listdir(path)
          #开始重命名
          print("=======================================")
          for fileNum, fileName in enumerate(fileList):
          if(fileName.split('.')[-1] == strFileExt):
          num = reGetNum.search(fileName).group(1)
          print(num + ' ' + fileName, end = "")
          if num:
          newName = strPrefix + num + strSuffix + '.' + strFileExt
          os.rename(fileName, newName)
          print(' ==> ' + newName)
          else:
          print("")
          print("=======================================")
          print("转换完成")


          13楼2013-04-12 18:26
          收起回复
            问题2:
            在科学计算的时间,常会生成大量的数据,同时要作图观察数据。
            一个简单的演示:
            路径下,大约1000个文件,每个文件都需要作图,并自动保存。
            有时间的话,今天就写一写


            15楼2013-04-13 10:38
            收起回复
              类似于这种:


              16楼2013-04-13 21:37
              收起回复
                问题3:
                列出给定目录下的所有文件
                -----------------------------
                今天时间不多,先写这一个吧


                17楼2013-04-13 21:39
                回复
                  【列出过程】


                  18楼2013-04-13 21:40
                  回复

                    =============================
                    #python3.3
                    import os
                    count = 1
                    def printdir(path):
                    global count
                    if os.path.isdir(path):
                    dirList = os.listdir(path)
                    if dirList:
                    for dir in dirList:
                    printdir(path + '\\' + dir)
                    else:
                    print('%07d: ' % count, end = '')
                    print(path)
                    count += 1;
                    elif os.path.isfile(path):
                    print('%07d: ' % count, end = '')
                    print(path)
                    count += 1;
                    else:
                    print('路径错误!\n')


                    19楼2013-04-13 21:43
                    回复
                      问题2测试用数据生成完毕,明天再贴吧,睡觉去了


                      20楼2013-04-13 23:27
                      回复
                        问题2
                        【测试用数据】

                        共1000文件,每个文件3000行测试数据


                        21楼2013-04-14 09:10
                        收起回复
                          问题2
                          【文件生成】


                          22楼2013-04-14 09:11
                          回复

                            ==============================
                            #python2.6
                            import numpy as np
                            import os
                            dir = 'testData'
                            totalFiles = 1000
                            totalData = 3000
                            path = os.getcwd()
                            path = os.path.join(path, dir)
                            if os.path.isdir(path):
                            print('Error: dir already exists!')
                            else:
                            os.mkdir(dir)
                            for i in range(totalFiles):
                            file = open(path + '\\' + str(i) + '.txt', 'w')
                            for j in range(totalData):
                            x = j / totalData * 2 * np.pi + j * np.random.rand() / totalData / 5
                            strdata = str(x), str(np.sin(x)), str(np.cos(x)), str(np.tan(x))
                            file.write(' '.join(strdata) + '\n')
                            file.close()
                            print("file %4d!" % i)
                            print('=' * 36 + '\nOK!')


                            23楼2013-04-14 09:12
                            回复
                              问题2
                              【图片生成中】


                              24楼2013-04-14 13:00
                              回复