def main(): print(format % ('PID', 'SWAP', 'COMMAND')) results = getSwap() for pid, swap, comm in results: print(format % (pid, filesize(swap), comm)) t = filesize(sum(x[1] for x in results)) print(totalFmt % t)
def download_process(name, startat, got, total, width=80): '''Progressbar: [xx%] FileName: yKiB of zMiB, Ts left, sKiB/s''' elapsed = time.time() - startat speed = got / elapsed if got == total: # complete s1 = 'DONE! ' fmt2 = ': %s total, %s elapsed, %s/s' s2 = fmt2 % (filesize(got), humantime(elapsed), filesize(speed)) else: fmt1 = '[%2d%%] ' p = got * 100 // total fmt2 = ': %s' size1 = filesize(got) args2 = [size1] if total > 0: fmt2 += ' of %s' args2.append(filesize(total)) fmt2 += ', %s left, %s/s' left = (total - got) / speed args2.append(humantime(left)) args2.append(filesize(speed)) s1 = fmt1 % p s2 = fmt2 % tuple(args2) avail = width - len(s1) - len(s2) - 1 if avail < 0: # Sadly, we have too narrow a termial. Let's output something at least avail = 2 name2 = '' for ch in name: w = east_asian_width(ch) in 'WF' and 2 or 1 if avail < w: break name2 += ch avail -= w sys.argv.count sys.api_version.conjugate() sys.maxint.imag sys.stdout.write('\r' + s1 + name2 + s2 + '\x1b[K') if got == total: sys.stdout.write('\n') else: sys.stdout.flush()
def download_process(name, startat, got, total, width=80): '''Progressbar: [xx%] FileName: yKiB of zMiB, Ts left, sKiB/s''' elapsed = time.time() - startat speed = got / elapsed if got == total: # complete s1 = 'DONE! ' fmt2 = ': %s total, %s elapsed, %s/s' s2 = fmt2 % (filesize(got), humantime(elapsed), filesize(speed)) else: fmt1 = '[%2d%%] ' p = got * 100 // total fmt2 = ': %s' size1 = filesize(got) args2 = [size1] if total > 0: fmt2 += ' of %s' args2.append(filesize(total)) fmt2 += ', %s left, %s/s' left = (total - got) / speed args2.append(humantime(left)) args2.append(filesize(speed)) s1 = fmt1 % p s2 = fmt2 % tuple(args2) avail = width - len(s1) - len(s2) - 1 if avail < 0: # Sadly, we have too narrow a termial. Let's output something at least avail = 2 name2 = '' for ch in name: w = east_asian_width(ch) in 'WF' and 2 or 1 if avail < w: break name2 += ch avail -= w sys.stdout.write('\r' + s1 + name2 + s2 + '\x1b[K') if got == total: sys.stdout.write('\n') else: sys.stdout.flush()
def remove_samll_dirs(): with ut.chdir(SRC_DIR): dirs = ut.globm('**/__result__/*') size = 0 for d in dirs: dirname = os.path.abspath(d) dirsize = ut.filesize(dirname) snapshots = [f for f in os.listdir(dirname) if f.startswith('snapshot_')] print(d, f'snapshots={len(snapshots)}', end='') if len(snapshots) < 1 and ut.filesize(d) < 100 * ut.MB1: print(' => Remove') shutil.rmtree(dirname) size += dirsize else: print('\r') with ut.chdir(dirname): size += thin_snapshot(snapshots, d) print(f'free: {size/1048576:.2f}MB')
def thin_snapshot(snapshots, dirname=''): size = 0 total = 0 for snapshot in snapshots: m = re.search(r'(?<=epoch-)\d+', snapshot) if not m: continue epoch = int(m[0]) if epoch < 10 or epoch % 10 == 0: continue # print(snapshot, '=> Remove', end='\r') size += ut.filesize(snapshot) total += 1 os.remove(snapshot) if total: print(dirname, 'total:', total) return size
def download(self, file, dir): ''' 将文件下载到指定目录,会在终端显示下载状态 file 是快盘的 dict,而 dir 是 path 对象 ''' # url = self.getdownloadurl(file['fileId']) url = self.mainurl+ 'download/?fileId=%s&uname=%s' % (file['fileId'], URIescape(file['name'])) res = self.request(url) size = int(file['size']) oldpercent = percent = 0 print('下载 %s,总大小:%s' % (file['name'], filesize(size))) with (dir+file['name']).open('wb') as f: data = res.read(4096) while data: f.write(data) percent = 100 * f.tell() // size if percent - oldpercent > 4: print('%d%%...' % percent, end='') sys.stdout.flush() oldpercent = percent data = res.read(4096) if oldpercent != 100: print('100%', end='') print('\n%s 下载完成' % file['name'])
def getspeed(): a = getbytes() time.sleep(INTERNAL) b = getbytes() return filesize((b - a) / INTERNAL) + '/s'