Python

Python中os和shutil模塊
csv文件和ini文件簡介

OS模塊

  • os.name #windows返回結果是nt,Linux是posix。
  • os.uname() #linux支持顯示
  • sys.platform #windows顯示win32,linux顯示linux
  • os.listdir() #返回目錄內容列表
  • os也有open、read、write等方法,但是建議使用內建函數
  • os.stat(path,*,dir_fd=None,follow_symlinks=True)#調用linux系統的stat
    • path:路徑的string或者bytes,或者fd
    • follow_symlink=True返回文件本身信息,False且如果是軟連接則顯示軟連接本身
  • 改變文件的屬主、屬組,但需要足夠的權限
    • os.chmod(path,mode,*,dir_fd=None,follow_symlinks=True)
    • os.chown(path,uid,gid)

shutil模塊

python中提供的高級文件操作的庫shutil

  • copyfileobj(fsrc,fdst[,length])文件對象復制,fsrc和fdst是open打開的文件對象,復制內容。fdst要求可寫。length表示buffere的大小
  • copyfile(src,dst,*,follow_symlinks=True)復制文件內容,不包含元數據。src,dst為文件的路徑字符串。然而本質上調用就是copyfileobj,所以不帶元數據二進制內容復制
  • copymode(src,dst,*,follow_symlinks=True)僅僅復制權限
  • copystat(src,dst,*,follow_symlinks=True)復制元數據,stat包含權限
  • copy(src,dst,*,follow_symlinks=True)復制文件內容、權限和部分元數據,不包括創建時間和修改時間。本質上調用copyfile和copymode
  • copy2比copy多復制了元數據,但需要平臺支持。本質調用copyfile和copystat
  • copytree(src,dst,symlinks=False,ignore=None,copy_functions=copy2,ignore_dangling_symlinks=False)遞歸復制目錄。默認使用copy2,也就是帶更多的元數據復制。
    • src、dst必須是目錄,src必須存在,dst必須不存在
    • ignore=func,提供一個callable(src,names)->ignored_names。提供一個函數,他會被調用。src是源目錄,那么誰是os.listdir(src)的結果,就是列出src中的文件名,返回值是要被過濾的文件名的set類型數據。
  • rm刪除
    • shutil.rmtree(path,ignore_errors=False,onerror=None)遞歸刪除。如同rm -rf一樣危險,慎用。它不是原子操作,有可能刪除錯誤就會中斷,已經刪除的就刪除了。ignore_errors=True,忽略錯誤;當等于False或者omitted時onerror生效。onerror=callable,接受函數function、path和execinfo。
  • move移動
    • move(src,dst,copy_function=copy2)遞歸移動文件、目錄到目標,返回目標。本身使用的是os.rename方法。如果不支持rename,是目錄則像copytree再刪除src目錄
  • shutil還有打包功能,生成tar并壓縮。支持zip、gz、bz、xz。

csv文件

Csv文件簡介:全稱Comma-Separated Values(逗號分隔值),也叫字符分隔值。它是一個被行分隔符、列分隔符劃分成行和列的文本文件,沒有指定字符編碼。http://www.itef.org/rfc/rfc4180.txt

  • 基本格式
    1. 行分隔符為\r\n,最后一行可以沒有分隔符
    2. 列分隔符通常為都好或者制表符
    3. 每一行稱為一條記錄(record)
    4. 字段可以使用雙引號括起來,也可不用。如果字段中出現了雙引號、逗號、換行符必須使用雙引號括起來。如果字段的值是雙引號,使用兩個雙引號表示一個轉義
    5. 表頭可以寫也可不寫,和字段列對齊就行
  • csv模塊
    • reader(csvfile,dialect=’excel’,**fmtparams)返回DictReader的實例,是個行迭代器。dellimiter列分隔符”,”逗號;lineterminator行分隔符”\r\n”;quotechar字段的引用符號,缺省為‘”’雙引號
      樹蔭好的處理:
      doublequote雙引號的處理,默認為True。如果和quotechar為同一個,True則使用兩個雙引號表示;False表示使用轉義字符將作為雙引號的前綴。escapechar一個轉義字符,默認為None。quoting制動雙引號的規則。QUOTE_ALL所有字段;QUOTE_MINIMAL特殊字符字段;QUOTE_NONNUMRIC非數字字段;QUOte_NONE都不使用引號
    • write(csvfile,dialect=’excel’,**fmtparams)返回DictWriter的實例。主要方法有writerow、writerows。

ini文件處理

作為配置文件,ini文件格式的很流行。

  • 中括號里面的部分稱為section。
  • 每一個section內,都是key=value形成的鍵值對,key稱為option選項。
[DEFAULT]
a=test

[mysql]
default-character-set=utf8

[mysqld]
datadir = /dbserver/data
port = 3306
character-set-server = utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

ConfigParser

configparser模塊的ConfigParser類就是用來操作ini文件的

  • read(filenames,encoding=None)讀取ini文件,可以是單個文件,也可以是文件列表??梢灾付ㄎ募幋a。
  • sections()返回section列表。缺省section不包括在內。
  • add_section(section_name)增加一個section
  • has_section(section_name)判斷section是否存在
  • options(section)返回section的所有option
  • has_option(section)判斷section是否存在這個option
  • get(section,option,*,raw=False,vars=None[,fallback])從指定的段的選項上去之,如果找到返回,如果沒有找到就去default段查看有沒有
  • getint(section,option,*,raw=False,vars=None[,fallback])和get方法一樣返回指定類型數據。
  • getfloat(section,option,*,raw=False,vars=None[,fallback])和get方法一樣返回指定類型數據。
  • getboolean(section,option,*,raw=False,vars=None[,fallback])和get方法一樣返回指定類型數據。
  • items(raw=False,vars=None)返回所有section名字及其對象
  • items(section,raw=False,vars=None)返回這個section的鍵值對組成二元組。
  • set(section,option,value)section存在的情況系啊,寫入option=value,要求option、value必須是字符串。
  • remove_section(section)移除section及其所有option
  • remove_option(section,option)移除section下的option
  • write(fileobj,sace_around_delimiters=True)將當前config的所有內容寫入fileobj中,一般open函數使用w模式。

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88165

(0)
KX_ilKX_il
上一篇 2017-10-30 11:35
下一篇 2017-10-30 20:02

相關推薦

  • sed用戶小結

    sed是一個很好的文件處理工具,本身是一個管道命令,主要是以行為單位進行處理,可以將數據行進行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法sed命令行格式為:         sed [-nefri] ‘command’ 輸入文本  …

    Linux干貨 2016-08-12
  • 進程和計劃任務

    一、進程概念    內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、 安全功能等 v Process:  運行中的程序的一個副本(文件),是被載入內存的一個指令集合,在內存中運行,系統指定一個內存空間和PID編號;進程ID(Process ID ,PID )號碼被用來標記各個進程;存在生命周期 &nbsp…

    Linux干貨 2016-11-27
  • 腳本小練習

    1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。                            …

    Linux干貨 2016-08-15
  • Linux-第一周作業

    1.計算機組成及其功能 計算機主要分為三部分: A、輸入單元:包括鍵盤、鼠標、掃描儀、手寫板、觸摸屏等。 B、中央處理器(CPU):含有算術邏輯、控制、記憶等單元。 C、輸出單元:例如屏幕、打印機等。 我們通過輸入設備(如鼠標與鍵盤)來將一些數據輸入到PC里面,然后再由PC的功能處理成為圖表或文章等信息后,將結果傳輸到輸出設備,如屏幕或打印機上面,這是計算機…

    Linux干貨 2016-07-07
  • shell編程

       編程基礎   編程基礎:       編程:也就是程序+數據           程序編程風格:                  過程式:以指…

    Linux干貨 2016-08-15
  • CentOS7常用網絡管理命令總結

    一、CentOS7網絡接口命名策略(systemd)二、CentOS7的基礎網絡管理命令2.1 NetworkManager服務2.2 nmtui文本交互式工具2.3 nmcli命令行接口工具nmcli的語法說明NetworkManager整體狀態顯示顯示所有連接或僅活動的連接顯示所有設備的狀態顯示指定設備的所有連接屬性添加動態的以太網連接(DHCP)添加靜…

    Linux干貨 2016-06-09
欧美性久久久久