随机模块random、os模块、sys模块、shutil模块
生活随笔
收集整理的這篇文章主要介紹了
随机模块random、os模块、sys模块、shutil模块
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
隨機模塊random
隨機模塊的用法
>>> random.randrange(1,10) #返回1-10之間的一個隨機數,不包括10 >>> random.randint(1,10) #返回1-10之間的一個隨機數,包括10>>> random.randrange(0, 100, 2) #隨機選取0到100間的偶數>>> random.random() #返回一個隨機浮點數 >>> random.choice('abce3#$@1') #返回一個給定數據集合中的隨機字符 '#'>>> random.sample('abcdefghij',3) #從多個字符中選取特定數量的字符 ['a', 'd', 'b']#生成隨機字符串 import string print(''.join(random.sample(string.ascii_letters + string.digits,6)))#洗牌 >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> random.shuffle(a) >>> a [3, 0, 7, 2, 1, 6, 5, 8, 9, 4]os模塊
os 模塊提供了很多允許你的程序與操作系統直接交互的功能
os模塊的用法
得到當前工作目錄,即當前Python腳本工作的目錄路徑: os.getcwd() 返回指定目錄下的所有文件和目錄名:os.listdir() 函數用來刪除一個文件:os.remove() 刪除多個目錄:os.removedirs(r“c:\python”) 檢驗給出的路徑是否是一個文件:os.path.isfile() 檢驗給出的路徑是否是一個目錄:os.path.isdir() 判斷是否是絕對路徑:os.path.isabs() 檢驗給出的路徑是否真地存:os.path.exists() 返回一個路徑的目錄名和文件名:os.path.split() e.g os.path.split('/home/swaroop/byte/code/poem.txt') 結果:('/home/swaroop/byte/code', 'poem.txt') 分離擴展名:os.path.splitext() e.g os.path.splitext('/usr/local/test.py') 結果:('/usr/local/test', '.py') 獲取路徑名:os.path.dirname() 獲得絕對路徑: os.path.abspath() 獲取文件名:os.path.basename() 運行shell命令: os.system() 讀取操作系統環境變量HOME的值:os.getenv("HOME") 返回操作系統所有的環境變量: os.environ 設置系統環境變量,僅程序運行時有效:os.environ.setdefault('HOME','/home/alex') 給出當前平臺使用的行終止符:os.linesep Windows使用'\r\n',Linux and MAC使用'\n' 指示你正在使用的平臺:os.name 對于Windows,它是'nt',而對于Linux/Unix用戶,它是'posix' 重命名:os.rename(old, new) 創建多級目錄:os.makedirs(r“c:\python\test”) 創建單個目錄:os.mkdir(“test”) 獲取文件屬性:os.stat(file) 修改文件權限與時間戳:os.chmod(file) 獲取文件大小:os.path.getsize(filename) 結合目錄名與文件名:os.path.join(dir,filename) 改變工作目錄到dirname: os.chdir(dirname) 獲取當前終端的大小: os.get_terminal_size() 殺死進程: os.kill(10884,signal.SIGKILL)sys模塊
sys的使用方法
sys.argv #命令行參數List,第一個元素是程序本身路徑 sys.exit(n) #退出程序,正常退出時exit(0) sys.version #獲取Python解釋程序的版本信息 sys.maxint #最大的Int值 sys.path #返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值 sys.platform #返回操作系統平臺名稱 sys.stdout.write('please:') #標準輸出 , 引出進度條的例子, 注,在py3上不行,可以用print代替 val = sys.stdin.readline()[:-1] #標準輸入 sys.getrecursionlimit() #獲取最大遞歸層數 sys.setrecursionlimit(1200) #設置最大遞歸層數 sys.getdefaultencoding() #獲取解釋器默認編碼 sys.getfilesystemencoding #獲取內存數據存到文件里的默認編碼 #指定寬度 # print('[%-15s]'%'#') # print('[%-15s]'%'##') # print('[%-15s]'%'###') # print('[%-15s]'%'####') # #打印 # print('%s%%'%(100))#第二個%號代表取消第一個%的特殊意義 # #可傳參來控制寬度 # print('[%%-%ds]'%50) # print(('[%%-%ds]'%50) %'#') # print(('[%%-%ds]'%50) %'##') # print(('[%%-%ds]'%50) %'###')打印進度條
import time def progress(percent,width=50):if percent >=1:percent=1show_str=('[%%-%ds]' %width) %(int(width*percent)*'#')print('\r%s %d%% '%(show_str,int(100*percent)),file=sys.stdout,flush=True,end='')#應用 data_size=102500 recv_size=0 while recv_size < data_size:time.sleep(0.01)recv_size+=1000percent=recv_size/data_sizeprogress(percent,width=70)shutil模塊
shutil指的是對高級的 文件、文件夾、壓縮包 處理模塊處理模塊
shutil的使用方法
shutil.copyfileobj(fsrc, fdst[, length]) # 將文件內容拷貝到另一個文件中 shutil.copyfileobj(open('a.txt','r'),open('b.txt','w'))shutil.copyfile(src, dst) # 拷貝文件 目標文件可以不存在 shutil.copyfile('a.txt','c.txt')shutil.copymode(src, dst) #僅拷貝權限。內容、組、用戶均不變 shutil.copymode('f1.log', 'f2.log') #目標文件必須存在shutil.copystat(src, dst) #僅拷貝狀態的信息,包括:mode bits, atime, mtime, flags shutil.copystat('f1.log', 'f2.log') #目標文件必須存在shutil.copy(src, dst) #拷貝文件和權限 shutil.copy('f1.log', 'f2.log')shutil.copy2(src, dst) #拷貝文件和狀態信息 shutil.copy2('f1.log', 'f2.log')shutil.ignore_patterns(*patterns) shutil.copytree(src, dst, symlinks=False, ignore=None) #遞歸的去拷貝文件夾 shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*')) #目標目錄不能存在,注意對folder2目錄父級目錄要有可寫權限,ignore的意思是排除shutil.rmtree(path[, ignore_errors[, onerror]]) 遞歸的去刪除文件 shutil.rmtree('folder1')shutil.move(src, dst) 遞歸的去移動文件,它類似mv命令,其實就是重命名 shutil.move('folder1', 'folder3')shutil.make_archive(base_name, format,...)
創建壓縮包并返回文件路徑,例如:zip、tar
創建壓縮包并返回文件路徑,例如:zip、tar
- base_name: 壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時,則保存至當前目錄,否則保存至指定路徑,
如 data_bak =>保存至當前路徑
如:/tmp/data_bak =>保存至/tmp/
- format: 壓縮包種類,“zip”, “tar”, “bztar”,“gztar”
- root_dir: 要壓縮的文件夾路徑(默認當前目錄)
- owner: 用戶,默認當前用戶
- group: 組,默認當前組
- logger: 用于記錄日志,通常是logging.Logger對象
shutil 對壓縮包的處理是調用 ZipFile 和 TarFile 兩個模塊來進行的,詳細:
zipfile壓縮&解壓縮
tarfile壓縮&解壓縮
import tarfile# 壓縮 >>> t=tarfile.open('/tmp/egon.tar','w') >>> t.add('/test1/a.py',arcname='a.bak') >>> t.add('/test1/b.py',arcname='b.bak') >>> t.close()# 解壓 >>> t=tarfile.open('/tmp/egon.tar','r') >>> t.extractall('/egon') >>> t.close()轉載于:https://www.cnblogs.com/yjiu1990/p/9072847.html
總結
以上是生活随笔為你收集整理的随机模块random、os模块、sys模块、shutil模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入浅出Java多线程
- 下一篇: 为什么Python是最吸金编程语言?