python練習題及實現 檔案處理 date日期

2022-04-11 07:02:09 字數 2048 閱讀 7323

【實現】

#!/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...