Learn_Python_文件/IO、File方法和OS方法14

1.輸入input和輸出print

輸出print:

Python有兩種輸出值的方式:表達式語句和print()函數

輸出的值轉換爲字符串,可以使用str()和repr()函數來實現

  • str():函數返回一個用戶易讀的表達形式
  • repr():產生一個解釋器易讀的表達形式

輸出的形式多樣化,可以使用 .format()函數來格式化輸出

# 兩種方式輸出一個平方與立方的表
for x in range(1,11):
    # .rjust()方法,可以將字符串靠右,並在左邊填充空格,類似的有.ljust()和.center()
    print(repr(x).rjust(2),repr(x*x).rjust(3),end = ' ')
    print(repr(x*x*x).rjust(4))
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
for x in range(1,11):
    # 字典,傳入key和value
    print('{0:2d} {1:3d} {2:4d}'.format(x,x*x,x*x*x))
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

輸入input:

str = input("請輸入:")
print("你輸入的內容是:",str)
請輸入:hah
你輸入的內容是: hah

通過eval()進行輸入表達式的計算:

str = input("請輸入:")
# 將字符串str當成有效的表達式來求值並返回計算結果
# eval儘管很強大,但安全性不高
print("你輸入的內容是:",eval(str))
請輸入:3*5
你輸入的內容是: 15

2.file文件

open() 函數常用形式是接收兩個參數:文件名(file)和模式(mode)

  • filename:包含了你要訪問的文件名稱的字符串值
  • mode:決定了打開文件的模式:只讀r,寫入w,追加a等等
open(file, mode='r')
# 完整語法格式:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

mode參數有:r, rb, r+, w, wb, w+, a, a+等等

file.write()函數:

寫入內容,而且可以寫入換行

# 打開一個文件
f = open("foo.txt", "w")

f.write( "Python 是一個非常好的語言。\n是的,的確非常好!!\n" )

# 關閉打開的文件
f.close()

file.read(size)函數:

size 是一個可選的數字類型的參數。 當 size 被忽略了或者爲負, 那麼該文件的所有內容都將被讀取並且返回 .

f = open("foo.txt","r")

str = f.read()
print(str)

f.close()
Python 是一個非常好的語言。
是的,的確非常好!!

file.readline()函數:

從文件中讀取單獨的一行。換行符爲 ‘\n’。f.readline() 如果返回一個空字符串, 說明已經已經讀取到最後一行。

f = open("foo.txt","r")

str = f.readline()

print(str)

f.close()
Python 是一個非常好的語言。

file.readlines()函數:

f.readlines() 將返回該文件中包含的所有行。

如果設置可選參數 sizehint, 則讀取指定長度的字節, 並且將這些字節按行分割。

f = open("foo.txt","r")

str = f.readlines()

print(str)

f.close()
['Python 是一個非常好的語言。\n', '是的,的確非常好!!\n']

這幾個是常用的,還有file.tell(), file.seek()等等file函數,各有用處。

pickle模塊

pickle是python語言的一個標準模塊 ,機器學習中經常用到。

python的pickle模塊實現了基本的數據序列和反序列化。

通過pickle模塊的序列化操作我們能夠將程序中運行的對象信息保存到文件中去,永久存儲。

通過pickle模塊的反序列化操作,我們能夠從文件中創建上一次程序保存的對象。

  • 序列化:pickle.dump(obj, file, [,protocol])
  • 序列化:pickle.dumps(obj, file, [,protocol]);以string形式
  • 反序列化:pickle.load(file)
  • 反序列化:pickel.loads(file);以string形式
#pickle模塊主要函數 
import pickle

dataList = [[1, 1, 'yes'],  
            [1, 1, 'yes'],  
            [1, 0, 'no'],  
            [0, 1, 'no'],  
            [0, 1, 'no']]  
dataDic = { 0: [1, 2, 3, 4],  
            1: ('a', 'b'),  
            2: {'c':'yes','d':'no'}}  
  
#使用dump()將數據序列化到文件中  
fw = open('dataFile.txt','wb')  

pickle.dump(dataList, fw, -1)  
 
pickle.dump(dataDic, fw)  
fw.close()  
  
#使用load()將數據從文件中序列化讀出  
fr = open('dataFile.txt','rb')  
data1 = pickle.load(fr)  
print(data1)  
data2 = pickle.load(fr)  
print(data2)  
fr.close()  
  
#使用dumps()和loads()舉例  
p = pickle.dumps(dataList)  
print( pickle.loads(p) )  
p = pickle.dumps(dataDic)  
print( pickle.loads(p) ) 
[[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']]
{0: [1, 2, 3, 4], 1: ('a', 'b'), 2: {'c': 'yes', 'd': 'no'}}
[[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']]
{0: [1, 2, 3, 4], 1: ('a', 'b'), 2: {'c': 'yes', 'd': 'no'}}

3.OS文件/目錄

暫時用的比較少,操作函數可查閱:Python3 OS文件/目錄方法

參考:

革命尚未成功,同志仍需努力!

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