最近用Python写了个项目 记录一下用到的知识点
-
日期
import time date=time.strftime("%Y-%m-%d-%H-%M-%S")
-
import shutil,os for root, dirs, files in os.walk(path): for file in files: processFunc(os.path.join(root, file)) # 注意要使用root 不要使用path 因为root是逐层递进的根路径,path是始终不变的 pass # 遍历path文件夹内第一层的文件
-
判断新拷贝文件是否已传输完毕
import os def fileTransFinished(name): oriBuildTime = os.stat(name).st_mtime buildTime = 0 while buildTime != oriBuildTime: oriBuildTime = os.stat(name).st_mtime time.sleep(0.5) buildTime = os.stat(name).st_mtime
当传输文件很大,且正在传输时,os.walk()可以立即识别到文件,但此时还不能处理文件,需等待文件传输完成。
通过文件大小os.stat().st_size不能确认文件完成传输,需使用st_mtime才行 -
解压zip压缩包
import zipfile unzip = zipfile.ZipFile(zipFileName) for fileName in unzip.namelist(): unzip.extract(fileName, outputPath) unzip.close()
-
tar.gz解压缩
import tarfile unTar = tarfile.open(targzFileName) unTar.extractall(outputPath)
-
拷贝文件
import shutil shutil.copy(fileName, newName)
-
文件处理个数进度
for root, dirs, files in os.walk(path): fileCnt = len(files) piece = fileCnt // 10 + 1 for i in range(0, fileCnt): if i % piece == 0: print(" {:.2f}%".format(i / piece * 10)) # do something # 0% 10% 20% ~ 90%
-
格式化输出 百分比 左对齐 右对齐
a = 0.123 b = 0.321 c = 123 d = 321 print("---{:>10.2%}{:<10.2%}{:>10d}{:<10d}---".format(a,b,c,d)) #--- 12.30%32.10% 123321 ---
-
判断路径存在 以及是否有写、读、执行权限
import os os.path.exists(path) os.access(path, os.W_OK|os.R_OK|os.X_OK)
-
config.ini文件读取解析
import configparser config = configparser.ConfigParser() config.read("./config.ini") opt = config.get(SECTION, OPTION)
```