file_utils.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # -*- coding: utf-8 -*-
  2. from math import floor
  3. import os
  4. import shutil
  5. import subprocess
  6. #检查是否存在目录,没有则创建
  7. def checkDirectoryOrCreate(dir):
  8. if not os.path.exists(dir):
  9. os.makedirs(dir)
  10. #比较name中是否在suffix格式列表里
  11. #suffix为list,例如:['.png', '.mp3'],如suffix为None或者大小为0则直接返回True
  12. def __validExtension(name, suffix):
  13. if None == suffix:
  14. return True
  15. if len(suffix) <= 0:
  16. return True
  17. name = name.lower()
  18. for suffixTemp in suffix:
  19. if name.endswith(suffixTemp.lower()):
  20. return True
  21. return False
  22. #查找目录下指定类型的文件,忽略大小写
  23. #suffixList(数组)指定文件拓展名,例如:findFiles('../dir', False, ['.png', '.mp3']),如suffix为None或者大小为0则不过滤任何格式
  24. def findFiles(directory, includeChild, suffixList):
  25. ret = []
  26. if includeChild:
  27. for root, dirs, files in os.walk(directory):
  28. for name in files:
  29. if name.startswith('.'):
  30. continue
  31. if None == suffixList:
  32. temp = os.path.join(root, name)
  33. ret.append(temp)
  34. continue
  35. for suffixTemp in suffixList:
  36. if name.lower().endswith(suffixTemp.lower()):
  37. temp = os.path.join(root, name)
  38. ret.append(temp)
  39. break
  40. else:
  41. dirList = os.listdir(directory)
  42. for name in dirList:
  43. if name.startswith('.'):
  44. continue
  45. if None == suffixList:
  46. temp = os.path.join(directory, name)
  47. ret.append(temp)
  48. continue
  49. for suffixTemp in suffixList:
  50. if name.lower().endswith(suffixTemp.lower()):
  51. temp = os.path.join(directory, name)
  52. ret.append(temp)
  53. break
  54. return ret
  55. #搜集directory下的文件,拷贝到tarDirectory目录,注意tarDirectory里不保持与directory相同的目录结构
  56. #suffix(数组)指定文件拓展名,例如:copyFilesToDirectory('../dir', False, ['.png', '.mp3']),如suffix包含‘.*’则不过滤任何格式
  57. def copyToDirectory(directory, tarDirectory, includeChild, suffix):
  58. allFiles = findFiles(directory, includeChild, suffix)
  59. for curFile in allFiles:
  60. _, desFileName = os.path.split(curFile)
  61. desFile = os.path.join(tarDirectory, desFileName)
  62. shutil.copyfile(curFile, desFile)
  63. print(os.path.abspath(curFile))
  64. return len(allFiles)
  65. def isDir(path):
  66. if os.path.exists(path):
  67. return True
  68. return False
  69. def isFile(path):
  70. if os.path.isfile(path):
  71. return True
  72. def writeToFile(content, output):
  73. fileHandle = open(output,'w')
  74. fileHandle.write(content+'\n')
  75. fileHandle.close()