python文件输入符_python文件IO与file操作
1 標準輸入輸出IO
- (1) 打印到屏幕 print()
print(self, *args, sep=’ ‘, end=’n’, file=None):
把傳遞的表達式 轉換成一個 字符串表達式
known special case of print
"""
print(value, ..., sep=' ', end='n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
- (2) 讀取鍵盤的輸入 print()
input(*args, **kwargs):
從標準輸入讀取一個行,并返回一個字符串
Read a string from standard input
注意 python2 中
raw_input 與python3的input一樣
input可以接收一個Python表達式作為輸入,并將運算結果返回
str = input("請輸入表達式:");
[i for i in range(4)]
print "你輸入的內容是: ", str
[0,1,2,3]
2 數據文件的讀寫,打開和關閉文件
- (1) 創建file文件對象—open()方法
用Python內置的open()函數打開一個文件,創建一個file對象,然后使用相關的方法才可以調用它進行讀寫
f=open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
f--文件句柄對象
file:訪問的文件名稱。
mode:決定了打開文件的模式:只讀,寫入,追加等。默認文件訪問模式為只讀(r)。
encoding:指定編碼格式,gbk,utf8..。
buffering:如果buffering的值被設為0,就不會有寄存。如果buffering的值取1,訪問文件時會寄存行。如果將buffering的值設為大于1的整數,表明了這就是的寄存區的緩沖大小。如果取負值,寄存區的緩沖大小則為系統默認。
打開文件的不同方式:
模式描述
r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
rb以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。
r+打開一個文件用于讀寫。文件指針將會放在文件的開頭。
rb+以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。
w打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
wb以二進制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
w+打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
wb+以二進制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
a打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
ab以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
a+打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。
ab+以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用于讀寫。
文件操作圖解:
模式
r
r+
w
w+
a
a+
讀
+
+
+
+
寫
+
+
+
+
+
創建
+
+
+
+
覆蓋
+
+
指針在開始
+
+
+
+
指針在結尾
+
+
- (2) file文件對象的屬性和方法
一個被打開的file文件,可以通過操作得到有關該文件的各種信息
屬性描述
file.closed返回true如果文件已被關閉,否則返回false。
file.mode返回被打開文件的訪問模式。
file.name返回文件的名稱。
f=open(r"filename","rb")
print(f.name) filename
print(f.closed) False
print(f.mode) rb
f.close()
print(f.name) filename
print(f.closed) True
print(f.mode) rb
close()方法
File 對象的 close()方法刷新緩沖區里任何還沒寫入的信息,并關閉該文件,這之后便不能再進行寫入
read()方法
按打開方式是 字節還是字符
read(self, size=-1)
按格式讀長度
file.read(2)
r--->2 字符
rb--->2 字節
seek()方法
后面是字節,指定指針位置
seek(self, *args, **kwargs)
file.seek(2)----字節數----gbk--2個字節一個漢字
file.seek(3)----字節數----utf-8--3個字節一個漢字
file.tell()
查看當前指針位置
seek(self, *args, **kwargs)
position = fo.tell();
print("當前文件位置 : ", position)
file.writable()
True if file was opened in a write mode.
file.readable()
True if file was opened in a read mode.
file.flush()
從內存強刷到硬盤
一般文件操作沒有完成到硬盤上的時候,數據不會存在
file.readline()
讀一行
readline() --------- 每行
for line in file:
print(line.read()) ========>>>>> # python 2 xreadlines()
file.readlines()
返回一個列表
file.truncate()
截取 指針位置前面的數據
- (3) 上下文管理 with open(..) as f:
with open(r'filename',mode='rb') as file:
file.read()
例子
讀寫操作 字節,字符打開
1
path=r'filename'
file=open(path,encoding='utf-8',mode='r')
a=file.read()
print(a)
file.close()
2
path=r'filename'
file=open(path,'rb')
a=file.read().decode('gbk')
print(a)
file.close()
3
path=r'filename'
file=open(path,mode='w',encoding='utf-8')
file.write('adasdad')
file.close()
4
path=r'filename'
file=open(path,'wb')
file.write('哈哈哈'.encode('utf-8'))
file.close()
- (4) 文件的修改與重命名
文件修改,重命名需要借助 os模塊的 remove()和rename()
原文件,讀取內容 — 修改 — 重新新建一個文件,接收 — 刪除原文件
os模塊提供執行文件處理操作的方法,比如重命名和刪除文件
rename(current_file_name, new_file_name)
remove(file_name)
例子
file2=open(r'f2','w',encoding='utf-8')
with open(r'f1','r',encoding='utf-8') as file1:
for line in file1:
mylist=line.split('|')
mylist[0]=mylist[0][0:2]
mystr='|'.join(mylist)
file2.write(mystr)
file2.close()
import os
os.remove(r'f1')
os.rename(r'f1',r'f2')
3 目錄操作方法 os模塊
mkdir()方法
當前目錄下創建一個新目錄
import os
# 創建目錄test
os.mkdir("test")
chdir()方法
切換目錄
import os
os.mkdir("d:test")
getcwd()方法
顯示當前的工作目錄
import os
print(os.getcwd())
rmdir()方法
刪除目錄,刪除之前,它的所有內容應該先被清除
import os
os.rmdir("d:text")
4 常見的文件目錄操作方法 附錄:
OS 對象方法:
提供了處理文件及目錄的一系列方法
序號方法及描述
8
9
10
11
12
13
14
16
17
18
19
20
22
23
24
26
27
28
29
30
31
32
33
34
35
36
37os.mknod(filename[, mode=0600, device])
創建一個名為filename文件系統節點(文件,設備特別文件或者命名pipe)。
38
39
41
43
45
47
48
49
50
52
54
55
57
58
59
61
63
file句柄 對象方法:
序號方法及描述
1關閉文件。關閉后文件不能再進行讀寫操作。
2刷新文件內部緩沖,直接把內部緩沖區的數據立刻寫入文件, 而不是被動的等待輸出緩沖區寫入。
3返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。
4如果文件連接到一個終端設備返回 True,否則返回 False。
6從文件讀取指定的字節數,如果未給定或為負則讀取所有。
8讀取所有行并返回列表,若給定sizeint>0,則是設置一次讀多少字節,這是為了減輕讀取壓力。
10
11截取文件,截取的字節通過size指定,默認為當前文件位置。
12將字符串寫入文件,沒有返回值。
13向文件寫入一個序列字符串列表,如果需要換行則要自己加入每行的換行符。
總結
以上是生活随笔為你收集整理的python文件输入符_python文件IO与file操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: while read line 用法详细
- 下一篇: Java飞机大战教程(大一课程设计)