1、新手必會Python基礎

博客內容:html

一、基礎語法python

二、運算符git

三、流程控制api

四、列表、元組、字典、集合數組

五、字符串app

六、文件操做ide

 

 

1、基礎語法

一、標識符

命名規則:函數

  • 以字母、下劃線開頭
  • 其餘部分由字母、數字或下劃線組成
  • 不能使用關鍵字命名;
  • 常量通常所有是大寫;
  • 命名要有意義,不宜過長。

定義:能夠改變的量:post

age=19    #定義一個名爲age的量,他的值爲19

常量:不能夠改變的量(命名字母全大寫)測試

二、註釋

Python中單行註釋以 # 開頭

行註釋能夠用多個 # 號,還有 ''' 和 """

# 單行註釋
 
'''
多行註釋
'''
 
"""
多行註釋
"""
註釋

三、行與縮進

python縮進來表示代碼塊,不使用大括號 {} 。

縮進的空格數是可變的,可是同一個代碼塊的語句必須包含相同的縮進空格數。

四、數字(Number)類型

python中數字有四種類型:整數、布爾型、浮點數和複數。

  • int (整數), 如 1
  • bool (布爾), 如 True
  • float (浮點數), 如 1.2三、3E-2
  • complex (複數), 如 1 + 2j、 1.1 + 2.2j
age = 19

ps:類型的轉換

 

  • int(x) 將x轉換爲一個整數。
  • float(x) 將x轉換到一個浮點數。
  • complex(x) 將x轉換到一個複數,實數部分爲 x,虛數部分爲 0。
  • complex(x, y) 將 x 和 y 轉換到一個複數,實數部分爲 x,虛數部分爲 y。x 和 y 是數字表達式。

五、字符串(String)

"oeasys"

  • python中單引號和雙引號使用徹底相同。
  • 使用三引號('''或""")能夠指定一個多行字符串
  • 轉義符 '\' 反斜槓能夠用來轉義
  • Python中的字符串不能改變
  • 字符串能夠用 + 運算符鏈接在一塊兒,用 * 運算符重複以及格式化輸出

ps:格式化輸出

字符串 %s;整數 %d、;浮點數%f

name = "oeasys"
print ("i am %s " ,% name)
  
#輸出: i am oeasys

六、布爾值

一個True(真)
一個False(假)

七、用戶輸入與輸出

input() 等待用戶輸入

print() 打印輸出

2、運算符

一、Python算術運算符

二、Python比較運算符

 

三、Python賦值運算符

四、Python位運算符

 

五、Python邏輯運算符

六、Python成員運算符

  

七、Python身份運算符

 

八、Python運算符優先級

 

 

運算符圖片並不是原創,轉自菜鳥教程

 3、流程控制

一、條件控制

1 if 若是:    # 若是爲真,執行若是代碼
2     執行若是代碼
3 elif 不然若是:    # 不然若是爲真,執行不然若是代碼
4     執行不然若是代碼
5 else:    # 前面都不爲真,執行不然代碼
6     執行不然代碼
if-elif-else  
1 result = 值1 if 條件 else 值2
2  
3 # 若是條件成立,那麼將 「值1」 賦值給result變量,不然,將「值2」賦值給result變量
三元運算

 二、循環控制

一、while 循環

while 判斷條件: 語句

 二、while 循環使用 else 語句

while 若是爲真:    # 若是爲真,執行循環語句
   執行循環語句
else:    #while循環爲假,執行不然語句
   執行不然語句

 三、for 語句

for i in range(10):

  執行語句 

 ps:range()函數

內置range()函數,它會生成數列

1 for i in range(5):
2      print(i)
3 ...
4 0
5 1
6 2
7 3
8 4

 使用range指定區間的值

1 for i in range(5,9) :
2     print(i)
3  
4     
5 5
6 6
7 7
8 8

 range以指定數字開始並指定不一樣的增量(甚至能夠是負數,有時這也叫作'步長')

1 for i in range(0, 10, 3) :
2     print(i)
3  
4     
5 0
6 3
7 6
8 9

 您能夠結合range()和len()函數以遍歷一個序列的索引

1 a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
2 for i in range(len(a)):
3 ...     print(i, a[i])
4 ... 
5 0 Google
6 1 Baidu
7 2 Runoob
8 3 Taobao
9 4 QQ

 range()函數來建立一個列表

1 >>>list(range(5))
2 [0, 1, 2, 3, 4]

 

 

四、break和continue語句

  1. break 語句能夠跳出 for 和 while 的循環體
  2. continue語句被用來告訴Python跳過當前循環塊中的剩餘語句,而後繼續進行下一輪循環。

 五、pass 語句

Python pass是空語句,是爲了保持程序結構的完整性。

pass 不作任何事情,通常用作佔位語句

 4、列表、元組、字典、集合

一、列表

建立列表

names = ['張三',"李四",'王五']

經過下標訪問列表中的元素,下標從0開始計數

>>> names[0]
'張三'
>>> names[2]
'王五'
>>> names[-1]
'王五'
>>> names[-2] #還能夠倒着取
'李四' 
 1 >>> num = ["1","2","3","4","5","6"]
 2 >>> num[1:4]  #取下標1至下標4之間的數字,包括1,不包括4
 3 ['2', '3', '4']
 4 >>> num[1:-1] #取下標1至-1的值,不包括-1
 5 ['2', '3', '4', '5']
 6 >>> num[0:3] 
 7 ['1', '2', '3']
 8 >>> num[:3] #若是是從頭開始取,0能夠忽略,跟上句效果同樣
 9 ['1', '2', '3']
10 >>> num[3:] #若是想取最後一個,必須不能寫-1,只能這麼寫
11 ['4', '5', '6'] 
12 >>> num[3:-1] #這樣-1就不會被包含了
13 ['4', '5']
14 >>> num[0::2] #後面的2是表明,每隔一個元素,就取一個
15 ['1', '3', '5'] 
16 >>> num[::2] #和上句效果同樣
17 ['1', '3', '5']
切片:取值
1 num = ['1', '2', '3', '4', '5', '6']
2 >>> num.append("7")
3 >>> num
4 ['1', '2', '3', '4', '5', '6', '7']
追加
1 >>> num = ['1', '2', '3', '4', '5', '6', '7']
2 >>> num.insert(2,"強行從3前面插入")
3 >>> num
4 ['1', '2', '強行從3前面插入', '3', '4', '5', '6', '7']
插入
1 >>> num = ['1', '2', '3', '4', '5']
2 >>> num[2] = "new"
3 >>> num
4 ['1', '2', 'new', '3', '4', '5']
修改
 1 >>> mun = ['1', '2', '3', '4', '5', '6', '7']
 2 >>>del num[2] 
 3 >>> num
 4 num = ['1', '2', '3', '4', '5', '6', '7']
 5 
 6 
 7 
 8 >>> num.remove("4") #刪除指定元素
 9 >>> num
10 ['1', '2', '5', '6', '7']
11 >>> num.pop() #刪除列表最後一個值 
12 '7'
13 >>> nun
14 ['1', '2', '5', '6']
刪除
1 >>> num = ['1', '2', '3', '4', '5']
2 >>> num1 = [1,2,3]
3 >>> num.extend(num1)
4 >>> num
5 ['1', '2', '3', '4', '5', 1, 2, 3]
擴展
1 >>> num = ['1', '2', '3', '4', '5', 1, 2, 3]
2 
3 >>> num_copy = num.copy()
4 >>> num_copy
5 ['1', '2', '3', '4', '5', 1, 2, 3]
拷貝
1 >>> num = ['1', '2', '3', '4', '5','2']
2 >>> num.count("2")
3 2
統計
1 >>> num = ['4', '2', '1','9', '7', '5']
2 >>> num.sort() 
3 >>> num
4 ['1', '2', '4', '5', '7', '9']
排序
1 >>> num = ['4', '2', '1','9', '7', '5']
2 >>> num.reverse()
3 >>> num
4 ['5', '7', '9', '1', '2', '4']
反轉
1 >>> num = ['4', '2', '1','9', '7', '5']
2 >>> num.index('9')
3 3
獲取下標  

二、元組

Python 的元組與列表相似,元組的元素不能修改,又叫只讀列表。

num = ("1","2","3")

只有2個方法:一個是count,一個是index 

三、字典

字典是另外一種可變容器模型,且可存儲任意類型對象。

字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中 

字典是無序的,key是惟一的

1 names = {
2     'name1': "zhangsan",
3     'name2': "李四",
4     'name3': "王五",
5 }
字典建立
1 names = {
2     'name1': "zhangsan",
3     'name2': "李四",
4     'name3': "王五",
5 }
6 names["name4"] = "wangwu"
增長
1 name['name2'] = "張三"
修改
info.pop("name2")  #刪除方法1

del info['name3']  #刪除方法2

info.popitem() #隨機刪除
刪除
1 >>> "name1" in names #查找1
2 True
3 >>> names.get("name2")  #獲取
4 
5 >>> names["name9"] #獲取,可是若是key不存在,就報錯
查找
 1 values() 函數以列表返回字典中的全部值
 2 
 3 keys() 函數以列表返回一個字典全部的鍵
 4 
 5 setdefault(key,default) 函數, 若是鍵不存在於字典中,將會添加鍵並將值設爲默認值
 6 key -- 查找的鍵值。
 7 default -- 鍵不存在時,設置的默認鍵值。
 8 
 9 update() 函數把字典dict2的鍵/值對更新到dict裏。
10 
11 items() 函數以列表返回可遍歷的(鍵, 值) 元組數組
12 
13 has_key() 函數用於判斷鍵是否存在於字典中,若是鍵在字典dict裏返回true,不然返回false。
14 
15 fromkeys() 函數用於建立一個新字典,以序列 seq 中元素作字典的鍵,value 爲字典全部鍵對應的初始值。
16 
17 copy() 函數返回一個字典的淺複製。
其它方法
序號 函數及描述
1 cmp(dict1, dict2)
比較兩個字典元素。
2 len(dict)
計算字典元素個數,即鍵的總數。
3 str(dict)
輸出字典可打印的字符串表示。
4 type(variable)
返回輸入的變量類型,若是變量是字典就返回字典類型。

 

序號 函數及描述
1 dict.clear()
刪除字典內全部元素
2 dict.copy()
返回一個字典的淺複製
3 dict.fromkeys(seq[, val])
建立一個新字典,以序列 seq 中元素作字典的鍵,val 爲字典全部鍵對應的初始值
4 dict.get(key, default=None)
返回指定鍵的值,若是值不在字典中返回default值
5 dict.has_key(key)
若是鍵在字典dict裏返回true,不然返回false
6 dict.items()
以列表返回可遍歷的(鍵, 值) 元組數組
7 dict.keys()
以列表返回一個字典全部的鍵
8 dict.setdefault(key, default=None)
和get()相似, 但若是鍵不存在於字典中,將會添加鍵並將值設爲default
9 dict.update(dict2)
把字典dict2的鍵/值對更新到dict裏
10 dict.values()
以列表返回字典中的全部值
11 pop(key[,default])
刪除字典給定鍵 key 所對應的值,返回值爲被刪除的值。key值必須給出。 不然,返回default值。
12 popitem()
隨機返回並刪除字典中的一對鍵和值。

四、集合 

集合是一個無序的,不重複的數據組合,它的主要做用以下:

  • 去重,把一個列表變成集合,就自動去重了
  • 關係測試,測試兩組數據以前的交集、差集、並集等關係
 1 s = set([3,5,9,10])      #建立一個數值集合  
 2   
 3 t = set("Hello")         #建立一個惟一字符的集合  
 4 
 5 
 6 a = t | s          # t 和 s的並集  
 7   
 8 b = t & s          # t 和 s的交集  
 9   
10 c = t – s          # 求差集(項在t中,但不在s中)  
11   
12 d = t ^ s          # 對稱差集(項在t或s中,但不會同時出如今兩者中)  
13   
14    
15   
16 基本操做:  
17   
18 t.add('x')            # 添加一項  
19   
20 s.update([10,37,42])  # 在s中添加多項  
21   
22    
23   
24 使用remove()能夠刪除一項:  
25   
26 t.remove('H')  
27   
28   
29 len(s)  
30 set 的長度  
31   
32 x in s  
33 測試 x 是不是 s 的成員  
34   
35 x not in s  
36 測試 x 是否不是 s 的成員  
37   
38 s.issubset(t)  
39 s <= t  
40 測試是否 s 中的每個元素都在 t 中  
41   
42 s.issuperset(t)  
43 s >= t  
44 測試是否 t 中的每個元素都在 s 中  
45   
46 s.union(t)  
47 s | t  
48 返回一個新的 set 包含 s 和 t 中的每個元素  
49   
50 s.intersection(t)  
51 s & t  
52 返回一個新的 set 包含 s 和 t 中的公共元素  
53   
54 s.difference(t)  
55 s - t  
56 返回一個新的 set 包含 s 中有可是 t 中沒有的元素  
57   
58 s.symmetric_difference(t)  
59 s ^ t  
60 返回一個新的 set 包含 s 和 t 中不重複的元素  
61   
62 s.copy()  
63 返回 set 「s」的一個淺複製
經常使用操做

 

5、字符串

一、Python轉義字符

轉義字符 描述
\(在行尾時) 續行符
\\ 反斜槓符號
\' 單引號
\" 雙引號
\a 響鈴
\b 退格(Backspace)
\e 轉義
\000
\n 換行
\v 縱向製表符
\t 橫向製表符
\r 回車
\f 換頁
\oyy 八進制數,yy表明的字符,例如:\o12表明換行
\xyy 十六進制數,yy表明的字符,例如:\x0a表明換行
\other 其它的字符以普通格式輸出

二、Python字符串運算符

操做符 描述 實例
+ 字符串鏈接
>>>a + b 'HelloPython'
* 重複輸出字符串
>>>a * 2 'HelloHello'
[] 經過索引獲取字符串中字符
>>>a[1] 'e'
[ : ] 截取字符串中的一部分
>>>a[1:4] 'ell'
in 成員運算符 - 若是字符串中包含給定的字符返回 True
>>>"H" in a True
not in 成員運算符 - 若是字符串中不包含給定的字符返回 True
>>>"M" not in a True
r/R 原始字符串 - 原始字符串:全部的字符串都是直接按照字面的意思來使用,沒有轉義特殊或不能打印的字符。 原始字符串除在字符串的第一個引號前加上字母"r"(能夠大小寫)之外,與普通字符串有着幾乎徹底相同的語法。
>>>print r'\n' \n >>> print R'\n' \n
% 格式字符串

三、Python 字符串格式化

python 字符串格式化符號:

    符   號 描述
      %c  格式化字符及其ASCII碼
      %s  格式化字符串
      %d  格式化整數
      %u  格式化無符號整型
      %o  格式化無符號八進制數
      %x  格式化無符號十六進制數
      %X  格式化無符號十六進制數(大寫)
      %f  格式化浮點數字,可指定小數點後的精度
      %e  用科學計數法格式化浮點數
      %E  做用同%e,用科學計數法格式化浮點數
      %g  %f和%e的簡寫
      %G  %F 和 %E 的簡寫
      %p  用十六進制數格式化變量的地址

格式化操做符輔助指令:

符號 功能
* 定義寬度或者小數點精度
- 用作左對齊
+ 在正數前面顯示加號( + )
<sp> 在正數前面顯示空格
# 在八進制數前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決於用的是'x'仍是'X')
0 顯示的數字前面填充'0'而不是默認的空格
% '%%'輸出一個單一的'%'
(var) 映射變量(字典參數)
m.n. m 是顯示的最小總寬度,n 是小數點後的位數(若是可用的話)

四、python的字符串內建函數

方法 描述

string.capitalize()

把字符串的第一個字符大寫

string.center(width)

返回一個原字符串居中,並使用空格填充至長度 width 的新字符串

string.count(str, beg=0, end=len(string))

返回 str 在 string 裏面出現的次數,若是 beg 或者 end 指定則返回指定範圍內 str 出現的次數

string.decode(encoding='UTF-8', errors='strict')

以 encoding 指定的編碼格式解碼 string,若是出錯默認報一個 ValueError 的 異 常 , 除非 errors 指 定 的 是 'ignore' 或 者'replace'

string.encode(encoding='UTF-8', errors='strict')

以 encoding 指定的編碼格式編碼 string,若是出錯默認報一個ValueError 的異常,除非 errors 指定的是'ignore'或者'replace'

string.endswith(obj, beg=0, end=len(string))

檢查字符串是否以 obj 結束,若是beg 或者 end 指定則檢查指定的範圍內是否以 obj 結束,若是是,返回 True,不然返回 False.

string.expandtabs(tabsize=8)

把字符串 string 中的 tab 符號轉爲空格,tab 符號默認的空格數是 8。

string.find(str, beg=0, end=len(string))

檢測 str 是否包含在 string 中,若是 beg 和 end 指定範圍,則檢查是否包含在指定範圍內,若是是返回開始的索引值,不然返回-1

string.format()

格式化字符串

string.index(str, beg=0, end=len(string))

跟find()方法同樣,只不過若是str不在 string中會報一個異常.

string.isalnum()

若是 string 至少有一個字符而且全部字符都是字母或數字則返

回 True,不然返回 False

string.isalpha()

若是 string 至少有一個字符而且全部字符都是字母則返回 True,

不然返回 False

string.isdecimal()

若是 string 只包含十進制數字則返回 True 不然返回 False.

string.isdigit()

若是 string 只包含數字則返回 True 不然返回 False.

string.islower()

若是 string 中包含至少一個區分大小寫的字符,而且全部這些(區分大小寫的)字符都是小寫,則返回 True,不然返回 False

string.isnumeric()

若是 string 中只包含數字字符,則返回 True,不然返回 False

string.isspace()

若是 string 中只包含空格,則返回 True,不然返回 False.

string.istitle()

若是 string 是標題化的(見 title())則返回 True,不然返回 False

string.isupper()

若是 string 中包含至少一個區分大小寫的字符,而且全部這些(區分大小寫的)字符都是大寫,則返回 True,不然返回 False

string.join(seq)

以 string 做爲分隔符,將 seq 中全部的元素(的字符串表示)合併爲一個新的字符串

string.ljust(width)

返回一個原字符串左對齊,並使用空格填充至長度 width 的新字符串

string.lower()

轉換 string 中全部大寫字符爲小寫.

string.lstrip()

截掉 string 左邊的空格

string.maketrans(intab, outtab])

maketrans() 方法用於建立字符映射的轉換表,對於接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示須要轉換的字符,第二個參數也是字符串表示轉換的目標。

max(str)

返回字符串 str 中最大的字母。

min(str)

返回字符串 str 中最小的字母。

string.partition(str)

有點像 find()和 split()的結合體,從 str 出現的第一個位置起,把 字 符 串 string 分 成 一 個 3 元 素 的 元 組 (string_pre_str,str,string_post_str),若是 string 中不包含str 則 string_pre_str == string.

string.replace(str1, str2,  num=string.count(str1))

把 string 中的 str1 替換成 str2,若是 num 指定,則替換不超過 num 次.

string.rfind(str, beg=0,end=len(string) )

相似於 find()函數,不過是從右邊開始查找.

string.rindex( str, beg=0,end=len(string))

相似於 index(),不過是從右邊開始.

string.rjust(width)

返回一個原字符串右對齊,並使用空格填充至長度 width 的新字符串

string.rpartition(str)

相似於 partition()函數,不過是從右邊開始查找

string.rstrip()

刪除 string 字符串末尾的空格.

string.split(str="", num=string.count(str))

以 str 爲分隔符切片 string,若是 num 有指定值,則僅分隔 num+ 個子字符串

string.splitlines([keepends])

按照行('\r', '\r\n', \n')分隔,返回一個包含各行做爲元素的列表,若是參數 keepends 爲 False,不包含換行符,若是爲 True,則保留換行符。

string.startswith(obj, beg=0,end=len(string))

檢查字符串是不是以 obj 開頭,是則返回 True,不然返回 False。若是beg 和 end 指定值,則在指定範圍內檢查.

string.strip([obj])

在 string 上執行 lstrip()和 rstrip()

string.swapcase()

翻轉 string 中的大小寫

string.title()

返回"標題化"的 string,就是說全部單詞都是以大寫開始,其他字母均爲小寫(見 istitle())

string.translate(str, del="")

根據 str 給出的表(包含 256 個字符)轉換 string 的字符,

要過濾掉的字符放到 del 參數中

string.upper()

轉換 string 中的小寫字母爲大寫

string.zfill(width)

返回長度爲 width 的字符串,原字符串 string 右對齊,前面填充0

6、文件操做

 一、初識⽂件操做

使⽤open()函數來打開⼀個⽂件:open(文件名(路徑),mode=「打開文件的方式」,encoding=「字符集utf-8」)

打開⽂件的⽅式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默認使⽤的是r(只讀)模式

 rb, wb, ab, 用來讀取非⽂本⽂件的時候. 好比讀取MP3. 圖像. 視頻等信息的時候就須要⽤到。由於這種數據是沒辦法直接顯⽰出來的. ⽂件上傳下載的時候還會⽤到. 以及直播. 實際上都是這種數據.

二、絕對路徑和相對路徑

1. 絕對路徑:從磁盤根⽬錄開始⼀直到⽂件名.

2. 相對路徑:同⼀個⽂件夾下的⽂件. 相對於當前這個程序所在的⽂件夾⽽⾔. 若是在同 ⼀個⽂件夾中. 則相對路徑就是這個⽂件名. 若是在上⼀層⽂件夾. 則要../

三、只讀(r, rb)

1 f = open("文件路徑.txt",mode="r", encoding="utf-8") # 打開文件
2 content = f.read() # 讀取內容,文件大時不要用
3 print(content) # 打印讀取的內容
4 f.close() # 關閉文件
5 
6 須要注意encoding表⽰編碼集. 根據⽂件的實際保存編碼進⾏獲取數據, 對於咱們⽽⾔. 更多的是utf-8.
只讀r

 

1 f = open("文件名.txt",mode="rb" )
2 content = f.read()
3 print(content)
4 f.close()
5 
6 rb的做⽤: 在讀取非⽂本⽂件的時候. 好比讀取MP3. 圖像. 視頻等信息的時候就須要⽤到
7 rb. 由於這種數據是沒辦法直接顯⽰出來的. 在後⾯咱們⽂件上傳下載的時候還會⽤到. 還有.咱們看的直播. 實際上都是這種數據.
rb. 讀取出來的數據是bytes類型, 在rb模式下. 不能選擇encoding字符集.

 

 

四、只寫(w, wb)

1 f = open("文件", mode="w", encoding="utf-8")
2 f.write("oeasys.cn")
3 f.flush() # 刷新
4 f.close()
w,寫的時候注意. 若是沒有⽂件. 則會建立⽂件, 若是⽂件存在. 則將原件中原來的內容刪除, 再寫入新內容

 

1 f = open("文件", mode="wb")
2 f.write("oeasys.cn".encode("utf-8"))
3 f.flush()
4 f.close()
wb模式下. 能夠不指定打開⽂件的編碼. 可是在寫⽂件的時候必須將字符串轉化成utf-8的

 

五、追加(a, ab)

1 f = open("文件", mode="a", encoding="utf-8")
2 f.write("oeasys.cn")
3 f.flush()
4 f.close()
a,在追加模式下. 咱們寫入的內容會追加在⽂件的結尾.

 

 

六、r+讀寫

1 f = open("文件", mode="r+", encoding="utf-8")
2 content = f.read()
3 f.write("oeasys.cn")
4 print(content)
5 f.flush()
6 f.close()
7 結果:
8 正常的讀取以後, 寫在結尾
對於讀寫模式. 必須是先讀. 由於默認光標是在開頭的. 準備讀取的. 當讀完了以後再進⾏ 寫入. 咱們之後使⽤頻率最⾼的模式就是r+

 

七、w+寫讀

1 f = open("文件", mode="w+", encoding="utf-8")
2 f.write("oeasys.cn")
3 content = f.read()
4 print(content)
5 f.flush()
6 f.close()
先將全部的內容清空. 而後寫入. 最後讀取.

 

 

八、a+寫讀(追加寫讀)

1 f = open("文件", mode="a+", encoding="utf-8")
2 f.write("oeasys.cn")
3 content = f.read()
4 print(content)
5 f.flush()
6 f.close()
a+模式下, 不論先讀仍是後讀. 都是讀取不到數據的.

 

 

九、讀取⽂件的⽅法:

1 f = open("文件路徑", mode="r", encoding="utf-8")
2 content = f.read()
3 print(content)
1. read() 將⽂件中的內容所有讀取出來. 弊端: 佔內存. 若是⽂件過⼤.容易致使內存崩潰

 

 

1 f = open("文件路徑", mode="r", encoding="utf-8")
2 content = f.readline()
3 content2 = f.readline()
4 content3 = f.readline()
5 content4 = f.readline()
6 content5 = f.readline()
2. readline() ⼀次讀取⼀⾏數據

 

1 f = open("文件", mode="r", encoding="utf-8")
2 for line in f:
3  print(line.strip())
3. 循環讀取. 這種⽅式是組好的. 每次讀取⼀⾏內容.不會產⽣內存溢出的問題.

 

注意: 讀取完的⽂件句柄⼀定要關閉 f.close()

十、其餘操做⽅法

1. seek(n) 光標移動到n位置, 注意, 移動的單位是byte. 因此若是是UTF-8的中⽂部分要 是3的倍數.

  一般咱們使⽤seek都是移動到開頭或者結尾.

  seek(偏移量,位置)

 

  移動到開頭: seek(0)

  移動到結尾: seek(0,2)

  seek的第⼆個參數表⽰的是從哪一個位置進⾏偏移, 默認是0, 表 ⽰開頭, 1表⽰當前位置, 2表⽰結尾

 

2. tell()獲取到當前光標位置

print(f.tell()) 

3. truncate() 截斷⽂件

  從開頭截斷到光標位置,刪掉光標後⾯的全部內容

  若是給參數,從開頭截斷到參數位置

在r+模式下. 若是讀取了內容. 不論讀取內容多少. 光標顯⽰的是多少. 再寫入 或者操做⽂件的時候都是在結尾進⾏的操做. 

因此若是想作截斷操做. 記住了. 要先挪動光標. 挪動到你想要截斷的位置. 而後再進⾏截斷

相關文章
相關標籤/搜索