所有測試語句基于Python 2.7.6 , Ubuntu 14.04 LTS
自學Python,如果哪里說的不對,還請指正。謝謝。
示例絕大部分來自博客園vamei的python教程
1.文件讀寫操作
#!/usr/bin/env python#coding=UTF-8#默認python編碼是ASCII編碼 要支持中文#加上coding=UTF-8的聲明# open()打開文件 r只讀 w寫入 a追加 r+ w+ a+模式# a+方式打開文件 指針指向結尾 , r方式 指針在文件頭# f.tell() 測試文件偏移位置 f.seek() 改變文件流file = open('test.txt','r')content = file.read(1024) #讀取N bytes字節數據file.close()PRint "按字節讀取:",'/n',content

沒有其他高級語言繁瑣的文件流操作,open()函數拿到文件對象直接操作,簡單粗暴。
二. 按行讀取文件
file = open('test.txt','r')content = file.readline() # 讀取一行file.close()print "按行讀取:","/n",content

記得使用完后,關閉文本對象。file.close()
三.文件寫入操作
#打開某個文件 如果沒有則創建file = open('temp.txt','w')file.write('Python is good!/n') #擦除文件內容,且只能寫一行file.writelines(['Objective-c is bad!/n','Swift is wtf?/n','C# and java which better'])file.close()file = open('temp.txt','rw')content = file.readlines() #讀取所有行,存儲在列表中file.close()index = 0while(index < len(content)): print content[index] index += 1

往文件中寫入多行內容,使用readlines() 讀取所有行,并返回一個list對象。Python中對象的方法命名格式不是駝峰法,
導致我經常寫成類似readLines() 第二單詞首字母的大寫的形式,感覺Python的方法命名受c語言影響,這個還需要慢慢適應。
先在test.py的目錄下建立一個utils.py文件,我們將之前的寫的判斷閏年的函數和自定義的SuperList類放在一起,以便其他模塊使用。
#!/usr/bin/env python#coding=UTF-8#自定義list子類 添加對類似 [1,2,3] - [2,3]運算的支持#這種自帶兩個__下劃線的方法 是特殊方法class SuperList(list): def __sub__(self,b): #self是SuperList的對象,可以使用類似 list[:] 的方式表示整個list對象 a = self[:] b = b[:] #如果list包含b中的元素,就移除,直到循環結束 len()返回list中元素個數 while len(b) > 0 : element_b = b.pop() #pop() 從list中彈出最后一個元素值,并返回他的值 if element_b in a : a.remove(element_b) return a#這里的-減號運算符代表__sub__() 方法,類似+ 代表__add()__#特殊方法和運算符相等價#print SuperList([1,2,3,4]) - SuperList([1,2])#函數定義 是否為閏年def isLeafYear(year): return year%400==0 or (year%100!=0 and year%4==0)
我們再建立一個model.py文件,將utils模塊導入
#! /usr/bin/env python#coding=UTF-8import utils #一個.py文件就構成一個模塊'''import a as b # 引入模塊a,并將模塊a重命名為bfrom a import function1 # 從模塊a中引入function1對象。調用a中對象時 # 我們不用再說明模塊,即直接使用function1,而不是a.function1。from a import * #從模塊a中引入所有對象 (類似Java的導包)'''#Python搜索模塊順序''' 1. 程序所在的文件夾 2. 標準庫的安裝路徑 3. 操作系統環境變量PYTHONPATH所包含的路徑'''#模塊.對象的方式來調用a = utils.isLeafYear(2004)print als = utils.SuperList([2,3,4,5]) - utils.SuperList([1,2,5])print ls

通過導入的方式使用現成的方法或者類,這就和Java C#中關于面向對象中類的操作比較相似了。
將功能相關的模塊放在一個文件夾下,通過import 模塊包名.模塊名 導入。
文件夾名.文件名
建立maths文件夾,新建一個__init__.py的空文件,告訴python這是一個模塊包

建立uitls.py文件,添加求平方和 求1~n個數字之和的函數如下:
#!/usr/bin/env python#coding=UTF-8#求兩個數的n次方之和def square_sum(a,b): c = a**a + b**b return a,b,c #求1~n的和def sum(n): c = n*(n+1)/2 return c
在home目錄下建立test_01.py 如下
#!/usr/bin/env pythonimport maths.utils as functionprint function.square_sum(1,2)print function.sum(100)

新聞熱點
疑難解答