1. 程式人生 > 其它 >Linux目錄結構介紹

Linux目錄結構介紹

#1.生成器
range(開頭,結尾,步長)
range(5,-1,-1),可以逐步減少

id(xx) #列印唯一ID值
enumerate([1,2,3], 1): #配合迴圈使用,列表和序號,右側指定序號初始位,需要2個變數承接

#2.隨機數
random.randint(1, 10) #1-10隨機
random.shuffle(xx) #對列表隨機排序
random.sample(xx,3) #從列表隨機抽出3個

#3.sys模組
sys.exit() #退出
sys.argv[1] #位置變數,一個數組

#4.返回值
return '1213'

#5.漂亮列印
import pprint
pprint.pprint(count) #如果是字典,將漂亮的列印
pprint.pformat(xx) #將xx變數的內容print列印,但不顯示,儲存到臨時變數裡,可以用於檔案寫入

#6.剪貼簿操作,非自帶
pip3 installpyperclip #安裝
importpyperclip
pyperclip.copy(name) #放到剪貼簿
pyperclip.paste() #從剪貼簿複製

#7.系統操作-路徑
import os
os.path.join('/','usr','bin') #返回路徑字串
os.getcwd() #檢視當前工作目錄
os.chdir('/xx/xx') #修改當前工作目錄
os.makedirs('/xx') #建立新資料夾
os.path.abspath('./xx') #將返回當前目錄+後面的絕對路徑
os.path.isabs('/xx') #引數絕對路徑返回True,相對返回False
os.path.relpath('/root','/usr/bin') #從start路徑到/root的相對路徑
'../../root'
os.path.dirname('/xxx/xx') #將返回最後一個斜槓之前
os.path.basename('/xx/xx') #將返回最後一個斜槓之後
os.path.split('/xx/xx/a.txt') #返回一個元祖,儲存上述2個
'/xx/xxx'.split(os.path.sep) #返回每個資料夾的列表,斜槓分隔
os.path.getsize(path) #返回指定檔案位元組數
os.listdir(path) #返回資料夾下的檔案,類似ls,列表
os.path.exists(path) #檔案或資料夾是否存在,真假
os.path.isfile(path) #是否是檔案,真假
os.path.isdir(path) #是否是資料夾,真假

os.unlink('/a.txt') #刪除檔案
os.rmdir('/test') #刪除資料夾,裡面必須為空
shutil.copy('oops.txt', 'ohno.txt') #複製
os.rename('ohno.txt', 'ohwell.txt') #重新命名
os.link('oops.txt', 'yikes.txt') #建立硬連結
os.symlink('oops.txt', 'jeepers.txt') #建立軟連線
os.path.islink('jeepers.txt') #是否是連線

os.chmod('oops.txt', 0o400) #新增擁有者讀
import stat
os.chmod('oops.txt', stat.S_IRUSR) #可以用常量來賦值
os.chown('oops', uid, gid) #需要ID號

import glob
glob.glob('m*') #匹配m開頭的

#需要迴圈承接,返回當前資料夾字串,資料夾內 資料夾、檔案列表
for folderName, subfolders, filenames in os.walk('/var/log'):
  print('當前資料夾列表 ' + folderName)
  for subfolder in subfolders:
    print(folderName + '檔案子目錄列表: ' + subfolder)
  for filename in filenames:
    print('當前檔案列表 ' + folderName + ': '+ filename)
  print('')

#8.shutil模組
import shutil
shutil.copy('/xxx.txt','/a') #返回被複制後的檔案路徑/a/xxx.txt
shutil.copytree('/xx','/tt') #將xx資料夾複製為tt
shutil.move('/xxx/a.txt','/xx') #移動過去
shutil.rmtree(path) #刪除所有,資料夾可以不為空

#9.send2trash模組
pip3 install send2trash
import send2trash
send2trash.send2trash('a.txt') #移動到回收站

#10.zipfile模組壓縮
import zipfile,os
name = zipfile.ZipFile('xxx.zip') #建立壓縮物件
xxx.namelist() #返回裡面包含的檔案和內容
nameinfo = name.getinfo('xxx.txt') #檢視裡面特定檔案的資訊
nameinfo.file_size #原來大小
nameinfo.compress_size #壓縮後大小

#計算壓縮率
(round(naminfo.file_size / naminfo.compress_size, 2))

name.extractall() #解壓,可以往裡面傳遞資料夾路徑,不存在會建立
name.extract('a.txt','/root') #將單個檔案解壓到固定目錄
name.close() #關閉物件

NewZip = zipfile.ZipFile('new.zip', 'w') #要是新增就得用a,否則覆蓋
NewZip.write('a.txt', cimpress_type=zipfile.ZIP_DEFLATED) #指定壓縮演算法
NewZip.close()


from collections import Counter
breakfast_counter = Counter(breakfast) #計數器返回字典
breakfast_counter.most_common() #以降序返回所有元素,或者如果給定一個數字,會返回該數字前的的元素
計數器 + 計數器 #可以合併,也可以用-來去除


#有序字典
from collections import OrderedDict
name = OrderedDict([('xx':'xx'),("tt":'tt')]


#雙端佇列
from collections import deque
dq = deque('abca')
dq.popleft() #左彈出
dq.pop() #右彈出

word == word[::-1] #是否是迴文,倒序一致

#迭代程式碼結構,每次會返回一項,並記住當前呼叫的狀態
import itertools
for i in itertools.chain([1,2],['a','b']):
for i in itertools.cycle([1,2]) #對引數無限迴圈
for i in itertools.accumulate([1,2,3,4]): #對引數逐步累加,給結果
itertools.accumulate([1,2,3,4],計算函式): #可以增加函式,函式裡是計算公式,預設傳2個引數
本文版權歸作者所有,歡迎轉載,請務必新增原文連結。