python——基礎教程——16

Python第十六節課


本節內容

Mon 0612:00Tue 0712:00Wed 0812:00Thu 0912:00Fri 1012:00Sat 1112:00Jan 1212:00Mon 13文件操作 OS模塊 平臺信息獲取 作業(文件) 涉及範圍基礎教程——16
文件操作
# 打開文件
	# 我們使用內置的open()函數將一個文件打開
    # 語法格式爲:open(filename[, mode])
    # filename表示文件的名稱,mode表示文件的模式
    # 模式默認是隻讀模式(r)
    # 如果文件原來已經存在,那麼不需要指定模式
    # 但是如果文件原來並不存在,那麼需要指定模式w
# 模式有:
	# r rb r+ rb+
# 分別表示只讀,二進制只讀,可讀可寫,二進制可讀可寫
	# w wb w+ wb+
# 分別表示只寫,二進制只寫,可讀可寫,二進制可讀可寫
	# a ab a+ ab+
# 分別表示追加,二進制追加,可讀可寫,二進制可讀可寫
# 文件的屬性
	# 在文件打開的前提下,我們可以查看文件的屬性
    # file.name		文件的名稱
    # file.mode		文件的權限
    # file.closed		文件是否關閉
# 關閉文件
	# file.close() 文件在執行之後,必須關閉,提高文件的安全性
# 寫入文件
	# file.write(str) 文件在寫入的時候,一定要在打開文件的時候提前給寫入的權限,str就是寫進去的內容。
# 讀取文件
	# file.read([count])
    # 在讀取文件的時候,我們可以指定讀取的字符count
    # 如果,沒有指定讀取字符的時候,默認是全部讀取
# 定位與移動
	# file.tell()	返回當前光標所在的位置
    # file.seek(count, from)	移動光標,count表示移動的位置
    # from表示移動的參照,0表示從頭開始
    # 1表示從當前位置移動, 2表示從末尾移動
# with關鍵詞
	# 語法格式:
    	with open('a.txt') as f:
            f.write() ....
    # 其中with語句是需要些f.close的,會自動關閉文件

練習:

​ 01、在沒有創建文件a.txt的前提下,打開文件a.txt

​ 在文件中寫入內容:xiao zhu peiqi 666

​ 查看文件是否關閉,如果未關閉,將文件關閉

​ 02、使用with語句再次完善上述問題

注:沒有創建a.txt文件,代表本身存在。
def test():
    file = open('a.txt', 'w+')
    file.write('xiao zhu peiqi 666')
    if file.closed:
        print("已關閉!文件")
    else:
        print("文件未關閉!正在關閉")
        file.close()


# test()


def test1():
    with open('a.txt', 'w+') as f:
        a = 'xiao zhu peiqi 666'
        # f.tell()
        # f.seek(0, 1)
        f.write(a)
    if f.closed:
        print("已關閉!文件")
    else:
        print("文件未關閉!正在關閉")
        f.close()


# test1()

OS模塊

創建目錄

# 創建一級目錄
	os.mkdir(name)
    # name 就是目錄名稱
# 創建多級目錄
	os.makedirs(name1/name2/name3)
    # 可以創建多級目錄

切換目錄

os.chdir(name)	# 切換到指定的目錄下

查看當前位置

os.getcwd()		# 返回當前所在的位置,絕對路徑

刪除目錄和文件

# 刪除文件
	os.remove(name)		# name 爲文件的名稱
# 刪除目錄
	os.removedirs(name1/name2/name3)	# 刪除多級目錄

練習:

​ 判斷是不是在window下,如果在windows下則進行以下操作
​ 創建一個多級目錄demo01/demo02/demo03
​ 在demo03下,創建一個文件a.txt
​ 在demo02下,創建一個文件b.txt
​ 將a.txt改名爲one.txt
​ 並寫入’this is one.txt file’
​ 在目錄demo03下,創建一個新的目錄,demo04
​ 打印出當前的位置,並且在demo04中創建文件c.txt
​ 將文件b.txt 刪除掉

def test2():
    if os.name == 'nt':
        print("處於 windows 系統下---")
        path_name = os.getcwd()
        print(path_name)
        os.makedirs('demo01/demo02/demo03')
        os.chdir('E:\project-s\python開發課\day16\demo01\demo02')
        open('b.txt', 'w+')
        os.chdir('E:\project-s\python開發課\day16\demo01\demo02\demo03')
        open('a.txt', 'w+')
        os.rename('a.txt', 'one.txt')
        with open('one.txt', "w+") as f:
            f.write('this is one.txt file')
        os.chdir('E:\project-s\python開發課\day16\demo01\demo02\demo03')
        os.mkdir('demo04')
        os.chdir('demo04')
        os.getcwd()
        open('c.txt', 'w+')
        os.chdir('E:\project-s\python開發課\day16\demo01\demo02')
        os.remove('b.txt')
    else:
        print("處於 linux 系統下---")


test2()

平臺相關信息的獲取

操作系統的種類

os.name
	# nt 表示windows
    # posix 表示linux

操作系統的分隔符

os.seq()

路徑

os.path.isfile(文件名稱)	判斷是否是文件
os.path.isdir(目錄文件)		判斷是否是目錄
os.path.split("絕對路徑")	將絕對路徑進行分割
os.path.join("字符串")		將字符串鏈接成完整路徑

作業:

在一個主目錄下,創建多個文件夾,每個文件夾下創建10個txt文件。

本題是運維工程師面試題~

多個文件夾名稱可自定義,面試爲[‘apacher’, ‘html’, ‘android’, ‘app’, ‘ios’, ‘nginx’, ‘tomcat’, ‘python’]

# 參考方法
def file_tree(path):
    a = ['物聯網', 'AI', 'matplotlib', 'anaconde', 'NLP', 'lua']
    for i in a:
        os.chdir(path)
        os.mkdir(i)
        z = 0
        os.chdir(path + f"//{i}")
        while z <= 10:
            z += 1
            now = datetime.datetime.now().date()
            result = now - datetime.timedelta(days=z)
            open(f'{result.strftime("%Y-%m-%d")}.txt', 'w+')


file_tree('E://sample')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章