Python基礎--文件操作(OS)

一、操作方式

1)讀

注意:光標會以文本開始讀取

1、以文本讀取讀

1、絕對路徑讀取

f = open('/home/pyrookie/temp.txt',mode='r',encoding='utf-8')
content = f.read()
print(content)
f.close()

2、相對路徑讀取

f2 = open('temp.py',mode='r',encoding='utf-8')
content = f2.read()
print(content)
f2.close()

2、以二進制讀取

二進制形式 一般在打開圖片,視頻等文件時使用 上傳下載文件時使用

# 將文件以urt-8打開 但是字符串以uncode編碼的
# 所以再內部有一次轉換爲str
f2 = open('temp.py',mode='rb') #二進制不寫編碼格式
content = f2.read()
print(content)
f2.close()

3、讀+ (讀寫)

先讀取文件中的內容,再追加

f = open('log',mode='r+',encoding='utf-8')
print(f.read())
f.write('我是pyrookie')
f.close()

4、讀+ (寫讀)

注意,寫會先覆蓋掉文件中的內容,讀取的是覆蓋之後的內容

f = open('log',mode='r+',encoding='utf-8')
f.write('aaa')
print(f.read())
f.close()

## 2)寫

### 1、以文本讀寫入
**對於寫,沒有此文件就會創建文件**
**有文件,先將文件清除,再寫入**
```python
f2 = open('text',mode='w',encoding='utf-8')
f2.write('寫入的內容')
f2.close()




<div class="se-preview-section-delimiter"></div>

2、以二進制寫入

wb寫入的時候用什麼編碼寫入就用什麼打開

f2 = open('log',mode='wb')
f2.write('寫入的內容'.encode('utf-8'))
f2.close()




<div class="se-preview-section-delimiter"></div>

3、讀+

沒什麼用 只是讀取不報錯

f = open('log',mode='w+',encoding='utf-8')
f.write('後面加入的內容')
print(f.read())
f.close()




<div class="se-preview-section-delimiter"></div>

3)追加

1、以文本讀取讀

f = open('log',mode='a',encoding='utf-8')
f.write('追加的內容')
f.close()




<div class="se-preview-section-delimiter"></div>

2、以二進制讀取

f = open('log',mode='ab')
f.write('追加的內容'.encode('utf-8'))
f.close()




<div class="se-preview-section-delimiter"></div>





<div class="se-preview-section-delimiter"></div>

## 4)讀寫





<div class="se-preview-section-delimiter"></div>

### 1、以文本讀取讀





<div class="se-preview-section-delimiter"></div>

### 2、以二進制讀取





<div class="se-preview-section-delimiter"></div>

### 3、讀+




<div class="se-preview-section-delimiter"></div>

## 5)




<div class="se-preview-section-delimiter"></div>

## 6)





<div class="se-preview-section-delimiter"></div>

# 二、功能詳解




<div class="se-preview-section-delimiter"></div>

## 1)f.read(n)
功能:讀取指定字符的文本信息




<div class="se-preview-section-delimiter"></div>

```python
f = open('log',mode='r+',encoding='utf-
content = f.read(3)    #只讀三個字符字符字符(你看到的是幾個就是幾個字符)   
print(content) 
f.close()  

aaa           

2)f.seek(n)

功能:將光標移動到制定的字節位置

f = open('log',mode='r+',encoding='utf-8')  
f.seek(3)
# 英文  一個字母按照一個字節    一個漢字按照三個字節)(utf-8)
content = f.read(3)
print(content)   
f.close()        

3)f.tell()

功能:讀取光標目前的位置

f = open('log',mode='r+',encoding='utf-8')        
f.write('nihaoya你是不')                             
count = f.tell()   # 讀取光標位置                       
f.seek(count-6)    # 調整光標位置(注意這以字節移動)             
print(f.read())    

是不12345        # 讀取的內容是從寫入後往前移動6個字符讀取                         

4) f.readline()

功能:一行一行的讀取

f = open('log',mode='r+',encoding='utf-8') 
print(f.readline()) 
print(f.readline()) 
print(f.readline()) 

12345
12345
12345

5)f.readlines()

功能:每一行當成列表中的一個元素,添加到列表中

f = open('log',mode='r+',encoding='utf-8')   
line = f.readlines()  
print(line)                                  

['12345\n', '12345\n', '12345\n']   
可以用 str.strip() 去除字符串兩邊的空字符串                                        

6)其他方法

1、f.readable()

功能:文件是否可讀

f = open('log',mode='r+',encoding='utf-8')   
print(f.readable())  

True              

2、f.truncate(n)

功能:從前往後截取幾個字符


f = open('log',mode='r+',encoding='utf-8')        
f.truncate(5)   
# 文件中會只剩下5個字節 字節 字節                                                                   

三、文件操作的幾個注意事項

1)讀取文件

注意讀取文件時要注意不要直接讀取文件的全部內容
可以使用 f.readline() 讀取文件的一行或者使用f.read(n)讀取文件的幾個字符

2)使用 with open()as

可以使用 with open 一次打開多個文件。

with open('log',mode='r+',encoding='utf-8') as obj, open('ni',mode='w+',encoding='utf-8') as f:  
    print(obj.read())    

3)字符串編碼注意事項

1、中文的編碼與解碼

# str --->byte  encode 編碼
s = '皮皮江'
b = s.encode('utf-8')
print(b)
#byte --->str decode 解碼
s1 = b.decode('utf-8')
print(s1)

b'\xe7\x9a\xae\xe7\x9a\xae\xe6\xb1\x9f'
皮皮江

2、英文編碼與解碼

s = 'pyrookie'
b = s.encode('utf-8')
print(b)
#byte --->str decode 解碼
s1 = b.decode('gbk')
print(s1)

b'pyrookie'
pyrookie

2)使用 with open()as

with open() as :
默認是讀取,編碼方式爲unicode
windos的文件默認都是 gbk 編碼方式
可以使用 with open 一次打開多個文件。

四、文件操作

1)刪除文件

import os 
os.remove('文件路徑/文件名')

2)重命名文件

import os 
os.remove('ord文件路徑/文件名''new文件路徑/文件名')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章