【實現】
#!/usr/bin/python
# -*-coding:utf-8-*-
#-------計算日期差
'''import datetime
from datetime import date
d1=date(2008,1,1)
d2=date(2008,10,1)
t=abs(d2-d1)
n=t.days+1
print n
#----判斷2008是否為閏年
def leapyear(year): #判斷year是否為閏年,ture為閏年,false為非閏年
years=year*1
if(years%100): ##不能整除100進入條件語句
return not(years%4) #能整除4返回ture,不能整除4,返回false
else: ##能整除100
return not(years%400) #能整除4返回ture,不能整除4,返回false
#a=leapyear(2000)
#print(leapyear(2000),leapyear(2008),leapyear(1900),leapyear(1833))
'''##----檔案處理
# 主要用的list的index和讀取字串split/strip及index讀取;另外可以使用zip將名字、年齡、分數組成元祖列表然後使用for(a,b)in s.numerate 讀取滿足條件型別的index再讀取需要輸出型別
#因為需要更正錯誤的地方所有需要開啟兩次該檔案,乙份用來讀取,乙份用來重寫,故需要注意不需要更正的行+跳過的地方寫入原內容
import os,sys
#import linecache
reload(sys)
sys.setdefaultencoding('utf-8')
filepath='e:\記錄.txt'.decode('utf-8').encode('gb2312') ##開啟windows中文路徑解析
with open(filepath, 'r+') as f1:
f1.seek(0)
l = f1.readlines()
with open(filepath, 'w+') as f:
sum=0
n=0a=0
f.seek(0) ##讀取檔案時游標位置重新回到頭部,否則容易讀到空
print 'the all contents is:\n',f.read()
f.seek(0)
for line in l:
if (line.isspace()): ##處理檔案為空行的資料
line=line
f.write(line)
continue
if (line[0]=='#'): ##忽略帶#開頭的行 或者使用 if(not line.startswith('#'))
line=line
f.write(line)
continue
a=a+1
l1=line.split(',')
l1[2] = l1[2].strip('\n')#去除尾部的\n
if (l1[2]*1<60):
print 'whose score is lower than 60:',l1[0]
if(l1[0][0]=='l'):
print 'whose name begins with l:', l1[0]
sum = sum + int(l1[2])
if(not l1[0].istitle()):
n=n+1
line=line.capitalize()
f.write(line)
print'the totalscore is', sum
print'the name in the file is all title:',(n==0)
Python編碼及檔案練習題
python編碼及檔案練習題 1,編碼問題 1 請問python2與python3中的預設編碼是什麼?python 2.x預設的字元編碼是ascii,預設的檔案編碼也是ascii python 2.x預設的字元編碼是unicode,預設的檔案編碼也是utf 8 2 為什麼會出現中文亂碼,你能舉例說明...
python 檔案練習題
練習一 建立檔案data.txt,檔案共100000行,每行存放乙個1 100之間 的整數,寫完後讀取檔案內容 import random f1 open home kiosk data.text w for i in range 100000 f1.write str random.randint...
python書中練習題 python練習題
1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...