亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python3 小技巧記錄

系統(tǒng) 1854 0

python 小技巧記錄

  • 我發(fā)現(xiàn)
    • 1、str轉(zhuǎn)bool方法
    • 2、python判斷文件和文件夾是否存在、創(chuàng)建文件夾
    • 3、文件操作
    • 4、python字典遍歷的幾種方法
        • 4.1、遍歷key值
        • 4.2、遍歷value值
        • 4.3、遍歷字典項(xiàng)
        • 4.4、遍歷字典健值
    • 5、Python 列表(List) 的三種遍歷(序號(hào)和值)方法
    • 6、python字典判斷某個(gè)Key是否存在

我發(fā)現(xiàn)

好多有用的小技巧其實(shí)都不難,但是每次用的時(shí)候,我都要去百度,主要是懶得去記,剛好突然有個(gè)想法,總結(jié)一些實(shí)用小技巧,歸類整理,免得到處百度,浪費(fèi)不必要的時(shí)間:

1、str轉(zhuǎn)bool方法

python中字符串“True” 和 “False"轉(zhuǎn)為bool類型時(shí), 不能通過(guò)bool(xx)強(qiáng)轉(zhuǎn)。

注意是因?yàn)樵趐ython中,除了’’、""、0、()、[]、{}、None為False, 其他轉(zhuǎn)換都為True。 也就是說(shuō)字符串如果不為空,則永遠(yuǎn)轉(zhuǎn)換為True。

好吧, 只能通過(guò)這樣了:

data = “True”
isTrue = data == str(True)


此時(shí)isTrue則是bool類型

2、python判斷文件和文件夾是否存在、創(chuàng)建文件夾

python中對(duì)文件、文件夾(文件操作函數(shù))的操作需要涉及到os模塊和shutil模塊。
先給出一大堆的API說(shuō)明吧:( 注釋綠色標(biāo)記 常用到的API, 也就三到四個(gè))

            
              得到當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑
              
                :
              
               os
              
                .
              
              getcwd
              
                (
              
              
                )
              
              

返回指定目錄下的所有文件和目錄名
              
                :
              
              os
              
                .
              
              listdir
              
                (
              
              
                )
              
              
                '''函數(shù)用來(lái)刪除一個(gè)文件:os.remove()'''
              
              

刪除多個(gè)目錄:os
              
                .
              
              removedirs(r“c:\python”)

檢驗(yàn)給出的路徑是否是一個(gè)文件:os
              
                .
              
              path
              
                .
              
              isfile
              
                (
              
              
                )
              
              

檢驗(yàn)給出的路徑是否是一個(gè)目錄:os
              
                .
              
              path
              
                .
              
              isdir
              
                (
              
              
                )
              
              

判斷是否是絕對(duì)路徑:os
              
                .
              
              path
              
                .
              
              isabs
              
                (
              
              
                )
              
              
                '''檢驗(yàn)給出的路徑是否真地存:os.path.exists()'''
              
              

返回一個(gè)路徑的目錄名和文件名
              
                :
              
              os
              
                .
              
              path
              
                .
              
              split
              
                (
              
              
                )
              
                   
eg os
              
                .
              
              path
              
                .
              
              split
              
                (
              
              
                '/home/swaroop/byte/code/poem.txt'
              
              
                )
              
               
結(jié)果:
              
                (
              
              
                '/home/swaroop/byte/code'
              
              
                ,
              
              
                'poem.txt'
              
              
                )
              
               

分離擴(kuò)展名:os
              
                .
              
              path
              
                .
              
              splitext
              
                (
              
              
                )
              
              

獲取路徑名:os
              
                .
              
              path
              
                .
              
              dirname
              
                (
              
              
                )
              
              

獲取文件名:os
              
                .
              
              path
              
                .
              
              basename
              
                (
              
              
                )
              
              

運(yùn)行shell命令
              
                :
              
               os
              
                .
              
              system
              
                (
              
              
                )
              
              

讀取和設(shè)置環(huán)境變量
              
                :
              
              os
              
                .
              
              getenv
              
                (
              
              
                )
              
               與os
              
                .
              
              putenv
              
                (
              
              
                )
              
              

給出當(dāng)前平臺(tái)使用的行終止符
              
                :
              
              os
              
                .
              
              linesep    Windows使用
              
                '\r\n'
              
              ,Linux使用
              
                '\n'
              
              而Mac使用
              
                '\r'
              
              

指示你正在使用的平臺(tái):os
              
                .
              
              name       對(duì)于Windows,它是
              
                'nt'
              
              ,而對(duì)于Linux
              
                /
              
              Unix用戶,它是
              
                'posix'
              
              
                '''重命名:os.rename(old, new)'''
              
              
                '''創(chuàng)建多級(jí)目錄:os.makedirs(r'c:\python\test')'''
              
              

創(chuàng)建單個(gè)目錄:os
              
                .
              
              mkdir(“test”)

獲取文件屬性:os
              
                .
              
              stat(
              
                file
              
              )

修改文件權(quán)限與時(shí)間戳:os
              
                .
              
              chmod(
              
                file
              
                '''終止當(dāng)前進(jìn)程:os.exit()'''
              
              
                '''獲取文件大小:os.path.getsize(filename)'''
              
            
          

3、文件操作

實(shí)用方式:

            
              
                with
              
              
                open
              
              
                (
              
              
                'path\file_name'
              
              
                ,
              
              
                'r+'
              
              
                )
              
              
                as
              
               file_obj
              
                :
              
              
    contents 
              
                =
              
               file_obj
              
                .
              
              read
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              contents
              
                )
              
            
          

API解讀

            
              os
              
                .
              
              mknod
              
                (
              
              
                "test.txt"
              
              
                )
              
                      創(chuàng)建空文件
fp 
              
                =
              
              
                open
              
              
                (
              
              
                "test.txt"
              
              
                ,
              
              w
              
                )
              
                   直接打開(kāi)一個(gè)文件,如果文件不存在則創(chuàng)建文件

關(guān)于
              
                open
              
               模式:

w      以寫方式打開(kāi),
a      以追加模式打開(kāi) 
              
                (
              
              從 EOF 開(kāi)始
              
                ,
              
               必要時(shí)創(chuàng)建新文件
              
                )
              
              
r	   以只讀方式打開(kāi)文件。文件的指針將會(huì)放在文件的開(kāi)頭。這是默認(rèn)模式。
r
              
                +
              
                   以讀寫模式打開(kāi)
w
              
                +
              
                   以讀寫模式打開(kāi) 
              
                (
              
              參見(jiàn) w 
              
                )
              
              
a
              
                +
              
                   以讀寫模式打開(kāi) 
              
                (
              
              參見(jiàn) a 
              
                )
              
              
rb     以二進(jìn)制讀模式打開(kāi)
wb     以二進(jìn)制寫模式打開(kāi) 
              
                (
              
              參見(jiàn) w 
              
                )
              
              
ab     以二進(jìn)制追加模式打開(kāi) 
              
                (
              
              參見(jiàn) a 
              
                )
              
              
rb
              
                +
              
                  以二進(jìn)制讀寫模式打開(kāi) 
              
                (
              
              參見(jiàn) r
              
                +
              
              
                )
              
              
wb
              
                +
              
                  以二進(jìn)制讀寫模式打開(kāi) 
              
                (
              
              參見(jiàn) w
              
                +
              
              
                )
              
              
ab
              
                +
              
                  以二進(jìn)制讀寫模式打開(kāi) 
              
                (
              
              參見(jiàn) a
              
                +
              
              
                )
              
              
                '''
文件API解讀
'''
              
              
fp
              
                .
              
              read
              
                (
              
              
                [
              
              size
              
                ]
              
              
                )
              
              
                '''size為讀取的長(zhǎng)度,以byte為單位 (如果未給定或?yàn)樨?fù)則讀取所有)'''
              
              

fp
              
                .
              
              readline
              
                (
              
              
                [
              
              size
              
                ]
              
              
                )
              
              
                '''讀一行,如果定義了size,有可能返回的只是一行的一部分(包括 "\n" 字符)'''
              
              

fp
              
                .
              
              readlines
              
                (
              
              
                [
              
              size
              
                ]
              
              
                )
              
              
                '''把文件每一行作為一個(gè)list的一個(gè)成員,并返回這個(gè)list。
									其實(shí)它的內(nèi)部是通過(guò)循環(huán)調(diào)用readline()來(lái)實(shí)現(xiàn)的。
									如果提供size參數(shù),size是表示讀取內(nèi)容的總長(zhǎng),也就是說(shuō)可能只讀到文件的一部分。
									'''
              
              

fp
              
                .
              
              write
              
                (
              
              
                str
              
              
                )
              
              
                '''把str寫到文件中,write()并不會(huì)在str后加上一個(gè)換行符'''
              
              

fp
              
                .
              
              writelines
              
                (
              
              seq
              
                )
              
              
                '''把seq的內(nèi)容全部寫到文件中(多行一次性寫入)。
								 這個(gè)函數(shù)也只是忠實(shí)地寫入,不會(huì)在每行后面加上任何東西。'''
              
              

fp
              
                .
              
              close
              
                (
              
              
                )
              
              
                '''關(guān)閉文件。python會(huì)在一個(gè)文件不用后自動(dòng)關(guān)閉文件,
								不過(guò)這一功能沒(méi)有保證,最好還是養(yǎng)成自己關(guān)閉的習(xí)慣。 
								 如果一個(gè)文件在關(guān)閉后還對(duì)其進(jìn)行操作會(huì)產(chǎn)生ValueError'''
              
              

fp
              
                .
              
              flush
              
                (
              
              
                )
              
              
                '''把緩沖區(qū)的內(nèi)容寫入硬盤'''
              
              

fp
              
                .
              
              fileno
              
                (
              
              
                )
              
              
                '''返回一個(gè)長(zhǎng)整型的”文件標(biāo)簽“'''
              
              

fp
              
                .
              
              isatty
              
                (
              
              
                )
              
              
                '''文件是否是一個(gè)終端設(shè)備文件(unix系統(tǒng)中的)'''
              
              

fp
              
                .
              
              tell
              
                (
              
              
                )
              
              
                '''返回文件操作標(biāo)記的當(dāng)前位置,以文件的開(kāi)頭為原點(diǎn)'''
              
              

fp
              
                .
              
              
                next
              
              
                (
              
              
                )
              
              
                '''返回下一行,并將文件操作標(biāo)記位移到下一行。
									把一個(gè)file用于for … in file這樣的語(yǔ)句時(shí),
									就是調(diào)用next()函數(shù)來(lái)實(shí)現(xiàn)遍歷的。'''
              
              

fp
              
                .
              
              seek
              
                (
              
              offset
              
                [
              
              
                ,
              
              whence
              
                ]
              
              
                )
              
              
                '''將文件打操作標(biāo)記移到offset的位置。這個(gè)offset一般是相對(duì)于文件的開(kāi)頭來(lái)計(jì)算的,
										一般為正數(shù)。但如果提供了whence參數(shù)就不一定了,whence可以為0表示從頭開(kāi)始計(jì)算,
										1表示以當(dāng)前位置為原點(diǎn)計(jì)算。2表示以文件末尾為原點(diǎn)進(jìn)行計(jì)算。需要注意,
										如果文件以a或a+的模式打開(kāi),每次進(jìn)行寫操作時(shí),文件操作標(biāo)記會(huì)自動(dòng)返回到文件末尾。'''
              
              

fp
              
                .
              
              truncate
              
                (
              
              
                [
              
              size
              
                ]
              
              
                )
              
              
                '''把文件裁成規(guī)定的大小,默認(rèn)的是裁到當(dāng)前文件操作標(biāo)記的位置。
									如果size比文件的大小還要大,依據(jù)系統(tǒng)的不同可能是不改變文件,
									也可能是用0把文件補(bǔ)到相應(yīng)的大小,也可能是以一些隨機(jī)的內(nèi)容加上去。'''
              
              

 
目錄操作:
os
              
                .
              
              mkdir
              
                (
              
              
                "file"
              
              
                )
              
                                 創(chuàng)建目錄
復(fù)制文件:
shutil
              
                .
              
              copyfile
              
                (
              
              
                "oldfile"
              
              
                ,
              
              
                "newfile"
              
              
                )
              
                     oldfile和newfile都只能是文件
shutil
              
                .
              
              copy
              
                (
              
              
                "oldfile"
              
              
                ,
              
              
                "newfile"
              
              
                )
              
                          oldfile只能是文件夾,newfile可以是文件,也可以是目標(biāo)目錄
復(fù)制文件夾:
shutil
              
                .
              
              copytree
              
                (
              
              
                "olddir"
              
              
                ,
              
              
                "newdir"
              
              
                )
              
                      olddir和newdir都只能是目錄,且newdir必須不存在
重命名文件(目錄)
os
              
                .
              
              rename
              
                (
              
              
                "oldname"
              
              
                ,
              
              
                "newname"
              
              
                )
              
                     文件或目錄都是使用這條命令
移動(dòng)文件(目錄)
shutil
              
                .
              
              move
              
                (
              
              
                "oldpos"
              
              
                ,
              
              
                "newpos"
              
              
                )
              
                 
刪除文件
os
              
                .
              
              remove
              
                (
              
              
                "file"
              
              
                )
              
              
刪除目錄
os
              
                .
              
              rmdir
              
                (
              
              
                "dir"
              
              
                )
              
              只能刪除空目錄
shutil
              
                .
              
              rmtree
              
                (
              
              
                "dir"
              
              
                )
              
                  空目錄、有內(nèi)容的目錄都可以刪
轉(zhuǎn)換目錄
os
              
                .
              
              chdir
              
                (
              
              
                "path"
              
              
                )
              
                 換路徑

            
          

4、python字典遍歷的幾種方法

4.1、遍歷key值

            
              
                >>
              
              
                >
              
               a

              
                {
              
              
                'a'
              
              
                :
              
              
                '1'
              
              
                ,
              
              
                'b'
              
              
                :
              
              
                '2'
              
              
                ,
              
              
                'c'
              
              
                :
              
              
                '3'
              
              
                }
              
              
                >>
              
              
                >
              
              
                for
              
               key 
              
                in
              
               a
              
                :
              
              
                print
              
              
                (
              
              key
              
                +
              
              
                ':'
              
              
                +
              
              a
              
                [
              
              key
              
                ]
              
              
                )
              
              
 
a
              
                :
              
              
                1
              
              
b
              
                :
              
              
                2
              
              
c
              
                :
              
              
                3
              
              
                >>
              
              
                >
              
              
                for
              
               key 
              
                in
              
               a
              
                .
              
              keys
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              key
              
                +
              
              
                ':'
              
              
                +
              
              a
              
                [
              
              key
              
                ]
              
              
                )
              
              
 
a
              
                :
              
              
                1
              
              
b
              
                :
              
              
                2
              
              
c
              
                :
              
              
                3
              
            
          

在使用上,for key in a和 for key in a.keys():完全等價(jià)。

4.2、遍歷value值

            
              
                >>
              
              
                >
              
              
                for
              
               value 
              
                in
              
               a
              
                .
              
              values
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              value
              
                )
              
              
                1
              
              
                2
              
              
                3
              
            
          

4.3、遍歷字典項(xiàng)

            
              
                >>
              
              
                >
              
              
                for
              
               kv 
              
                in
              
               a
              
                .
              
              items
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              kv
              
                )
              
              
                (
              
              
                'a'
              
              
                ,
              
              
                '1'
              
              
                )
              
              
                (
              
              
                'b'
              
              
                ,
              
              
                '2'
              
              
                )
              
              
                (
              
              
                'c'
              
              
                ,
              
              
                '3'
              
              
                )
              
            
          

4.4、遍歷字典健值

            
              
                >>
              
              
                >
              
              
                for
              
               key
              
                ,
              
              value 
              
                in
              
               a
              
                .
              
              items
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              key
              
                +
              
              
                ':'
              
              
                +
              
              value
              
                )
              
              
 
a
              
                :
              
              
                1
              
              
b
              
                :
              
              
                2
              
              
c
              
                :
              
              
                3
              
              
                >>
              
              
                >
              
              
                for
              
              
                (
              
              key
              
                ,
              
              value
              
                )
              
              
                in
              
               a
              
                .
              
              items
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              key
              
                +
              
              
                ':'
              
              
                +
              
              value
              
                )
              
              
 
a
              
                :
              
              
                1
              
              
b
              
                :
              
              
                2
              
              
c
              
                :
              
              
                3
              
            
          

在使用上for key,value in a.items()與for (key,value) in a.items()完全等價(jià)

5、Python 列表(List) 的三種遍歷(序號(hào)和值)方法

            
              
                #!/usr/bin/env python
              
              
                # -*- coding: utf-8 -*-
              
              
                if
              
               __name__ 
              
                ==
              
              
                '__main__'
              
              
                :
              
              
                list
              
              
                =
              
              
                [
              
              
                'html'
              
              
                ,
              
              
                'js'
              
              
                ,
              
              
                'css'
              
              
                ,
              
              
                'python'
              
              
                ]
              
              
                # 方法1
              
              
                print
              
              
                '遍歷列表方法1:'
              
              
                for
              
               i 
              
                in
              
              
                list
              
              
                :
              
              
                print
              
              
                (
              
              
                "序號(hào):%s   值:%s"
              
              
                %
              
              
                (
              
              
                list
              
              
                .
              
              index
              
                (
              
              i
              
                )
              
              
                +
              
              
                1
              
              
                ,
              
               i
              
                )
              
              
                )
              
              
                print
              
              
                '\n遍歷列表方法2:'
              
              
                # 方法2
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                len
              
              
                (
              
              
                list
              
              
                )
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "序號(hào):%s   值:%s"
              
              
                %
              
              
                (
              
              i 
              
                +
              
              
                1
              
              
                ,
              
              
                list
              
              
                [
              
              i
              
                ]
              
              
                )
              
              
                )
              
              
                # 方法3
              
              
                print
              
              
                '\n遍歷列表方法3:'
              
              
                for
              
               i
              
                ,
              
               val 
              
                in
              
              
                enumerate
              
              
                (
              
              
                list
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "序號(hào):%s   值:%s"
              
              
                %
              
              
                (
              
              i 
              
                +
              
              
                1
              
              
                ,
              
               val
              
                )
              
              
                )
              
              
                # 方法3
              
              
                print
              
              
                '\n遍歷列表方法3 (設(shè)置遍歷開(kāi)始初始位置,只改變了起始序號(hào)):'
              
              
                for
              
               i
              
                ,
              
               val 
              
                in
              
              
                enumerate
              
              
                (
              
              
                list
              
              
                ,
              
              
                2
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "序號(hào):%s   值:%s"
              
              
                %
              
              
                (
              
              i 
              
                +
              
              
                1
              
              
                ,
              
               val
              
                )
              
              
                )
              
            
          

運(yùn)行代碼后的結(jié)果如下圖所示:
python3 小技巧記錄_第1張圖片

6、python字典判斷某個(gè)Key是否存在

第一種方法:使用自帶函數(shù)實(shí)現(xiàn)(python2)。

在python的字典的屬性方法里面有一個(gè)has_key()方法,這個(gè)方法使用起來(lái)非常簡(jiǎn)單。

            
              
                #生成一個(gè)字典
              
              
d 
              
                =
              
              
                {
              
              
                'name'
              
              
                :
              
              
                {
              
              
                }
              
              
                ,
              
              
                'age'
              
              
                :
              
              
                {
              
              
                }
              
              
                ,
              
              
                'sex'
              
              
                :
              
              
                {
              
              
                }
              
              
                }
              
              
                #打印返回值
              
              
                print
              
               d
              
                .
              
              has_key
              
                (
              
              
                'name'
              
              
                )
              
              
                #結(jié)果返回True
              
            
          

第二種方法:使用in方法(python3)

            
              
                #生成一個(gè)字典
              
              
d 
              
                =
              
              
                {
              
              
                'name'
              
              
                :
              
              
                {
              
              
                }
              
              
                ,
              
              
                'age'
              
              
                :
              
              
                {
              
              
                }
              
              
                ,
              
              
                'sex'
              
              
                :
              
              
                {
              
              
                }
              
              
                }
              
              
                #打印返回值,其中d.keys()是列出字典所有的key
              
              
                print
              
               name 
              
                in
              
               d
              
                .
              
              keys
              
                (
              
              
                )
              
              
                #結(jié)果返回True
              
            
          

上面兩種方式,我更 推薦 使用 第二種 ,因?yàn)? has_key()是python2.2 之前的方法,而且使用 in 的方法會(huì)更快一些。

最后告訴大家一點(diǎn):除了使用 in 還可以使用 not in ,判定這個(gè)key不存在哦~

ps: 未完待續(xù)…


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 欧美午夜精品 | 久久视频精品 | 在线欧洲成人免费视频 | 四虎在线精品观看免费 | 亚洲婷婷在线视频 | 欧美做爰xxxⅹ在线视频hd | 黄色日本视频 | 亚洲欧美日韩不卡一区二区三区 | 在线观看国产福利 | 国产精品香蕉一区二区三区 | 久久综合综合 | 毛片免费视频播放 | 国内精品不卡一区二区三区 | 99九九精品国产高清自在线 | 亚洲日韩中文字幕一区 | 日本又黄又爽又色的免费视频 | 免费国产成人综合 | 久久精品国产一区二区三区不卡 | 极品专区高清在线 | 99热久久久久久久免费观看 | 久久综合中文字幕一区二区三区 | 色柚视频| 国产成人91| 欧美在线视频网 | 日韩中文字幕一区 | 国产美女久久精品香蕉69 | 天天干天天拍天天射 | 五月天综合久久 | 亚洲毛片视频 | 中文字幕在线观看日韩 | 欧美国产亚洲一区二区三区 | 亚洲精品色 | 天天视频免费入口 | 国产一区二区三区高清 | 天天操操操操操 | 九色蝌蚪自拍 | 国产福利视频一区 | 国产亚洲精品久久综合影院 | 国产成人亚洲精品77 | 精品国产91乱码一区二区三区 | 久久免费精品国产视频 |