主頁 > 前端設計 > 【詳細】Python基礎(三)

【詳細】Python基礎(三)

2020-10-06 16:46:28 前端設計

文章目錄

    • 前言
    • 12. Python檔案操作
      • 12.1 檔案的打開、寫入、關閉
      • 12.2 主訪問模式的特點(r、w、a)
      • 12.3 讀取函式(read、readlines、readline)
      • 12.4 訪問模式的特點(r+、w+、a+)
      • 12.5 檔案的定位讀寫(tell函式、seek函式)
      • 12.6 檔案備份
      • 12.7 檔案和檔案夾的操作
      • 12.8 批量重命名
      • 12.9 小總結

前言


準備在這篇中將Python基礎部分完結,敬請期待,未完待續…



12. Python檔案操作


檔案模式

模式描述
r以只讀方式打開檔案,檔案的指標將會放在檔案的開頭,這時默認模式
rb以二進制格式打開一個檔案用于只讀,檔案指標將會放在檔案的開頭,這時默認格式
r+打開一個檔案用于讀寫,檔案指標將會放在檔案的開頭,
rb+以二進制格式打開一個檔案用于讀寫,檔案指標將會放在檔案的開頭,
w打開一個檔案用于寫入,如果該檔案已存在則打開檔案,并從開頭開始編輯,即原有內容會被洗掉,如果該檔案不存在,創建新檔案
wb以二進制格式打開一個檔案只用于寫入,如果該檔案已存在則打開檔案,并從開頭開始編輯,即原有內容會被洗掉,如果該檔案不存在,創建新檔案,
w+打開一個檔案用于讀寫,如果該檔案已存在則打開檔案,并從頭開始編輯,即原有內容會被洗掉,如果該檔案不存在,創建新檔案
wb+以二進制格式打開一個檔案用于讀寫,如果該檔案已存在則打開檔案,并從開頭開始編輯,即原有內容會被洗掉,如果該檔案不存在,創建新檔案,
a打開一個檔案用于追加,如果該檔案已存在,檔案指標會放在檔案的結尾,也就是說,新的內容將會被寫入到已有內容之后,如果該檔案不存在,創建新檔案進行寫入
ab以二進制格式打開一個檔案用于追加,如果該檔案已存在,檔案指標將會放在檔案的結尾,也就是說,新的內容將會被寫入到已有的內容之后,如果該檔案不存在,創建新檔案進行寫入,
a+打開一個檔案用于讀寫,如果該檔案已存在,檔案指標將會放在檔案的結尾,檔案打開時會是追加模式,如果該檔案不存在,創建新檔案用于讀寫
ab+以二進制格式打開一個檔案用于追加,如果該檔案已存在,檔案指標將會放在檔案的結尾,如果該檔案不存在,創建新檔案用于讀寫,



巧記檔案模式

'''
1. 如果是帶b的,不管是r和b配合,還是w、a和b配合,但凡是帶b的,都是以二進制格式操作檔案
2. 但凡是帶+號的,都是可讀可寫模式,
3. r+ 、rb+、w+都是可讀可寫有什么區別嗎??? 所有的訪問模式,它的基礎特點都要遵循與主訪問模式(r、w、a),比如:rb、r+、rb+都是基于r訪問模式拓展開來,
舉個栗子:
      比如說r,只讀方式打開,如果檔案不存在,會報錯,如果rb、r+、rb+去打開一個檔案,不論是讀寫還是二進制讀寫,只要檔案不存在,但凡帶r的都報錯,
      比如說w訪問模式的,不管是wb、w+、wb+,如果打開一個檔案,檔案不存在,則新建檔案,這就可以說明w+和r+的區別了,
 
 
注意:     
	1. 檔案指標:相當于游標的位置,游標后的內容可以讀取出來,游標前的內容讀取不出來,檔案指標關系著檔案寫入和讀取資料的內容,
    2. a訪問模式,以a為基準的訪問模式,檔案指標都是在結尾,因為在后面才開始追加,
	3. 檔案操作不僅有三種主訪問模式(r、w、a),依賴這三種主訪問模式,還可以拓展好幾種訪問模式,
    
'''


12.1 檔案的打開、寫入、關閉

上栗子,一看就懂:

'''
在python,使用open函式,可以打開已經存在的檔案,或者創建一個新檔案,

語法:open(name, mode)
name:是要打開的目標檔案名的字串(可以包含檔案所在的具體路徑)
mode: 設定打開檔案的模式(訪問模式):只讀、寫入、追加等,

'''

# 1. 打開open()
f = open('test.txt','w')  # 如果這個檔案不存在,則新建此檔案

# 2. 讀寫操作 write() read()
f.write('aaa')

# 3. 關閉 close()
f.close()


'''
總結:
	1.檔案操作的作用是把一些內容(資料)存盤起來,可以讓程式下一次執行的時候直接使用,而不必重新制作一份,省事省力.

	2.這里的關閉相當于就是保存了,如果檔案不關閉,這個檔案將一直占用計算機記憶體,記憶體消耗比較大的,對于計算機來說,記憶體消耗大,記憶體占用量大,風險比較高了.

    3. 注意:可以只打開和關閉檔案,不進行任何讀寫操作
'''


12.2 主訪問模式的特點(r、w、a)


主訪問模式(r、w、a)

# 主訪問模式的特點,基礎訪問模式的特點(r、w、a)
'''
實驗目標:
    1. 訪問模式對檔案的影響
    2. 訪問模式對wirte()的影響
    3. 訪問模式是否可以省略
'''
=========================================================================

r: 如果檔案不存在,報錯:不支持寫入操作,表示只讀
f = open('test.txt1', 'r')  # 因為是讀操作,沒有這個檔案,所以報錯
f.write('aa')  # 報錯,因為是只讀模式,不能寫入
# 下面的才能正常執行
f = open('test.txt','r')
f.close()

==========================================================================

# w:只寫,如果檔案不存在,新建檔案,執行寫入,如果不存在則會會覆寫原有內容
f = open('1.txt', 'w')  # 如果沒有1.txt這個檔案,則會新建這個檔案
f.write('bbb')  # 1.txt檔案中的內容是aaa,現在變成了bbb
f.close()

==========================================================================

# a:追加,如果檔案不存在,新建檔案,在寫入內容,如果檔案存在,在原有內容基礎上,追加新內容
f = open('1.txt','a')
# f = open('2.txt','a')  # 如果檔案不存在,則新建檔案
f.write('helloworld')
f.close()

=========================================================================

# 訪問模式引數是否可以省略,如果省略表示訪問模式為r
# f = open('100.txt')  # 找不到檔案,報錯
f = open('1.txt')  # 這個時候不報錯了
f.close()



12.3 讀取函式(read、readlines、readline)


read()

'''
read()
檔案物件.read(num)
num表示要從檔案中讀取的資料的長度(單位是位元組),如果不寫引數,則讀取所有內容
'''

f = open('test.txt','r')
# 文章內容如果換行,底層有\n,會有位元組占位,導致read書寫引數讀取出來的眼睛看到的個數和引數不匹配
# read不寫引數表示讀取所有:
# print(f.read())  # read不寫引數,表示讀取所有
print(f.read(10))



readlines()

'''
readlines()可以按照行的方式把整個檔案中的內容進行一次性讀取,并且回傳的是一個串列,其中每一行的資料為一個元素
'''
f = open('test.txt','r')
con = f.readlines()
print(con)   # 輸出['aaaaa\n', 'bbbbb\n', 'ccccc\n', 'ddddd']  \n是換行符的意思
f.close()



readline()


'''
readline()一次讀取一行內容
'''
f = open('test.txt','r')

con = f.readline()
print(con)    # aaaaa  這是test.txt檔案內容的第一行

con = f.readline()
print(con)    # bbbbb  這時test.txt檔案內容的第二行

f.close()


12.4 訪問模式的特點(r+、w+、a+)


除了主訪問模式外(r、w、a),說一下其他的訪問模式(r+、w+、a+)


"""
帶加號的訪問模式對檔案的影響,以及檔案指標對資料讀取的影響
測驗目標:
    1.r+ 和 w+ a+的區別
    2.檔案指標對資料讀取的影響

"""
# r+:r沒有該檔案則報錯;檔案指標在開頭,所以能讀取出來資料
f = open('test.txt','r+')
print(f.read()) #
f.close()

# w+: 沒有該檔案會新建檔案:w特點:檔案指標在開頭,用新內容覆寫原內容
# f = open('test1.txt','w+')  # 如果沒有該檔案則新建檔案

# 用新內容把原內容覆寫掉,這里只進行了讀取,沒有呼叫write寫入,那就代表寫入的是空的,空的內容把有資料的內容給覆寫掉了
f = open('test.txt','w+')  # 此時test檔案里的內容被清空,因為被覆寫了
con = f.read()
print(con)
f.close()

# a+:沒有該檔案會新建檔案:檔案指標在結尾,無法讀取資料(檔案指標后面沒有資料)
f = open('test100.txt','a+')  # 沒有test100.txt這個檔案
f = open('test.txt','a+')
con = f.read()     # 檔案指標在結尾,無法讀取資料(檔案指標后面沒有資料)
print(con)
f.close()

12.5 檔案的定位讀寫(tell函式、seek函式)


telll():回傳檔案指標的當前位置

直接上栗子,一看就懂:

# dong.txt檔案中的內容是:hello,world

file = open("dong.txt", "r")
words = file.read(4)
print(f'讀取的資料是:{words}')  # hell
# 查找當前位置
position = file.tell()
print(f'當前位置是:{position}')  # 4


words = file.read(5)
print(f'讀取的資料是:{words}')   # o,wor
position = file.tell()
print(f'當前位置是:{position}')  # 9



seek():從指定位置開始讀取或者寫入檔案的資料

'''
語法:檔案物件.seek(偏移量,起始位置)
起始位置:0 檔案開頭  1 當前位置  2 檔案結尾
作用:用來移動檔案指標

目標:
    1. r模式 :改變檔案指標位置,改變讀取資料開始位置或把檔案指標放結尾(無法讀取資料)
    2. o模式 : 改變檔案指標位置,做到可以讀取出來資料
'''

# test.txt檔案的內容是:aaaaa

f = open('test.txt', 'r+')

# 1. 改變讀取資料開始位置
# f.seek(2,0)   # 從第三個a開始讀取
f.seek(0,2)   # 指標到了檔案結尾,讀取不出來資料
con = f.read()
print(con)

# 把檔案指標放結尾(無法讀取資料)
# f.seek(0, 2)

# 2. a 改變檔案指標位置,做到可以讀取出來資料
f.seek(0,0)  # 這時指標跑到了開頭,這時可以讀出資料
# f.seek(0)   # 如果是兩個0,可以省略寫一個0
con = f.read()
print(con)
f.close()



12.6 檔案備份


根據前面的知識,來進行檔案備份,中間有一步進行了優化:

# 1. 用戶輸入目標檔案
old_name = input('請輸入您要備份的檔案名:')
print(old_name)

# 2. 規劃備份檔案的名字
# 2.1 提取后綴 -- 找到名字中的點 -- 名字和后綴分離 -- 最右側的點才是后綴的點 -- 字串查找某個字串rfind
index = old_name.find('.')


# 4. 進行優化:有效檔案才備份  .txt這個檔案名就不是有效的
if index > 0:
    # 提取后綴
    postfix = old_name[index:]

# 2.2 組織新名字 = 原名字 + [備份] + 后綴
# 原名字就是字串的一部分字串 -- 切片[開始:結束:步長]
print(old_name[:index])    # 開始從0開始,可以省略不用寫
print(old_name[index:])    # 因為提取到最后,所以后面可以省略
# new_name = old_name[:index] + '[備份]' + old_name[index:]
new_name = old_name[:index] + '[備份]' + postfix   # 如果用戶輸入的檔案名不符合,則會報錯
print(new_name)


# 3. 備份檔案匯入資料(資料和源檔案一樣)
# 對于計算機來講,我們存盤什么,對于底層,他都是以二進制形式做的存盤以及操作,用二進制打開沒有問題的,
# 3.1 打開原檔案和備份原檔案
old_f = open(old_name, 'rb')
new_f = open(new_name,'wb')

# 3.2 原檔案讀取,備份檔案寫入
# 如果不確定目標檔案大小,回圈讀取寫入,當讀取出來的資料沒有了,終止回圈
while True:
    con = old_f.read(1024)
    if len(con) == 0:
        # 表示讀取完成了
        break
    new_f.write(con)
    
# 3.3 關閉檔案
old_f.close()
new_f.close()


12.7 檔案和檔案夾的操作


使用os模塊的一些方法,來進行檔案和檔案夾的操作

'''
在python中要操作檔案和檔案夾的話,要借助模塊,要借助os模塊,
1. 匯入模塊os
2. 使用模塊內功能
'''
import os   # 匯入模塊,借助os模塊里面的相關功能,使用os模塊相關功能:os.函式名()

# 1. rename(目標檔案,新檔案名): 重命名
# rename的第一個引數其實是路徑,因為這里直接在當前目錄下,所以直接寫的檔案名
# os.rename('1.txt','1000.txt')   # 此時檔案已經改名



# 2. remove(目標檔案名)
# os.remove('1000.txt')   # 此時1000.txt檔案已經洗掉,如果要洗掉的檔案不存在則會報錯



# 3. mkdir(檔案夾名字):創建檔案夾    也可以帶路徑的檔案夾名字
# os.mkdir('aa')  # 創建檔案夾成功


# 4.rmdir(檔案夾名字): 洗掉檔案夾
# os.rmdir('aa')  # 洗掉成功



# 5. getcwd():回傳當前檔案所在目錄路徑
print(os.getcwd())  # 輸出 D:\PycharmProjects\pythonProject11



# 6. chdir(目錄)改變目錄路徑
# os.mkdir('aa')  # 創建aa檔案夾
# 需求:在aa里面創建bb檔案夾:1. 切換目錄到aa  2.在aa檔案夾中創建bb
# os.chdir('aa')  # 切換到aa檔案夾
# os.mkdir('bb')  # 在檔案夾中創建bb



# 7. listdir(目錄): 獲取某個檔案夾下所有檔案,回傳一個串列
# print(os.listdir())  # 如果沒有填寫目錄,那么顯示當前檔案所在的檔案夾下所有檔案
# print(os.listdir('aa')) # 獲取aa檔案夾下所有的資料



# 8. rename(目標檔案名,新檔案名) -- 重命名檔案夾 aa重命名為aaaa
os.rename('aa','aaaa')


12.8 批量重命名


看個栗子,就懂了,用到了回圈

# 需求1:把code檔案夾所有檔案重命名 Python xxxx
import os

# 1. 找到所有檔案:獲取code檔案夾的目錄串列 -- listdir()
file_list = os.listdir()
print(file_list)

# 2. 構造名字

for i in file_list:
    new_name = 'Python_' + i
	# 3.重命名
    os.rename(i, new_name)   # 改名成功



檔案夾重命名進行優化,用flag來控制檔案名的修改

# 需求2:洗掉Python_   重命名:1.構造條件的資料 2.書寫if

import os
# 構造條件的資料
flag = 2

# 1. 找到所有檔案:獲取code檔案夾的目錄串列 -- listdir()
file_list = os.listdir()
print(file_list)

# 2. 構造名字

for i in file_list:
    if flag == 1:
        new_name = 'Python_' + i
    elif flag == 2:
        # 洗掉資料
        num = len('Python_')
        new_name = i[num:]
    # 3.重命名
    os.rename(i, new_name)   # 改名成功


12.9 小總結


檔案操作小總結

'''
r檔案指標在開頭,能讀取出來資料
w檔案指標在開頭,會把原內容覆寫掉
a檔案指標在結尾,向右讀取不出來資料,想要a模式能讀取出來資料,用seek()改變檔案指標位置

可以重命名檔案也可以重命名檔案夾
'''


"""
檔案操作步驟
    打開:檔案物件 = open(目標檔案,訪問模式)
    操作:
        1.讀
          檔案物件.read()
          檔案物件.readlines()
          檔案物件.readline()
        2.寫
           檔案物件.write()
           
    改變指標:seek()
    
    關閉: 檔案物件.close
主訪問模式
    w:寫,檔案不存在則新建該檔案
    r:讀,檔案不存在則報錯
    a:追加
檔案和檔案夾操作
    重命名:os.rename     可以重命名檔案也可以重命名檔案夾
    獲取當前目錄路徑:os.getcwd()
    獲取目錄串列:os.listdir()
            
"""

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/159722.html

標籤:其他

上一篇:深聊性能測驗,從入門到放棄之:Locust性能自動化(四)自定義客戶端測驗

下一篇:利用python批量爬取百度任意類別的圖片

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more