python学习(29)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习(29)相关的知识,希望对你有一定的参考价值。
习题:
习题1:把一个文件中的所有数字删除
方式1:
#encoding=utf-8
content_list = []
with open("e:\a.txt") as file_obj:
for line in file_obj:
for c in line:
if c.isdigit():
line=line.replace(c,"")
content_list.append(line)
with open("e:\a.txt","w") as fp:
fp.writelines(content_list)
with open("e:\a.txt") as fp:
print(fp.read())
方式2:老师
filtered_content=""
with open("e:\a.txt","r",encoding="utf-8") as fp:
content=fp.read()
for i in content:
if i >="0" and i <= "9":
continue
else:
filtered_content+=i
with open("e:\a.txt","w",encoding="utf-8") as fp:
fp.write(filtered_content)
with open("e:\a.txt","r",encoding="utf-8") as fp:
print(fp.read())
习题2把一个多级目录中所有文件的字母删除
方式1:
#encoding=utf-8
import os
for root,dirs,files in os.walk("d:\test"):
for file in files:
os.chdir(root)
with open(file,encoding="utf8") as file_obj:
new_line_list = []
for line in file_obj:
for v in line:
if v.isalpha():
line = line.replace(v,"")
new_line_list.append(line)
os.chdir(root)
with open(file,"w",encoding="utf8") as fp:
fp.writelines(new_line_list)
方式2:老师:
import os.path
file_path=[]
for root,dirs,files in os.walk("e:\letter"):
for f in files:
file_path.append(os.path.join(root,f))
print(file_path)
for file in file_path:
filter_content = ""
with open(file) as fp:
content = fp.read()
for letter in content:
if (letter >="a" and letter <="z") or (letter >="A" and letter <="Z"):
continue
else:
filter_content+=letter
with open(file,"w") as fp:
fp.write(filter_content)
习题3:写函数或类,返回日期时间
当前的日期,格式:"xxxx年xx月xx日"
当前的时间,格式:"xx小时xx分钟xx秒"
当前的日期和时间,格式:xxxx年xx月xx日 xx小时xx分钟xx秒
把时间戳,转换为日期,格式:"xxxx年xx月xx日"
把时间戳,转换为日期和时间,格式:xxxx年xx月xx日 xx小时xx分钟xx秒
import time
class DateTime(object):
def __init__(object):
pass
def current_date(self):
localtime = time.localtime()
year = str(localtime[0])
month = str(localtime[1])
day = str(localtime[2])
return year + "年" + month + "月" + day + "日"
def current_time(self):
localtime = time.localtime()
hour = str(localtime[3])
min = str(localtime[4])
sec = str(localtime[5])
return hour +"时" + min + "分" + sec + "秒"
def current_date_time(self):
localtime = time.localtime()
year = str(localtime[0])
month = str(localtime[1])
day = str(localtime[2])
localtime = time.localtime()
hour = str(localtime[3])
min = str(localtime[4])
sec = str(localtime[5])
return year + "年" + month + "月" + day + "日" + " " + hour +"时" + min + "分" + sec + "秒"
def from_timestamp_to_date(self,timestamp):
localtime = time.localtime(timestamp)
year = str(localtime[0])
month = str(localtime[1])
day = str(localtime[2])
return year + "年" + month + "月" + day + "日"
def from_timestamp_to_time(self,timestamp):
localtime = time.localtime(timestamp)
year = str(localtime[0])
month = str(localtime[1])
day = str(localtime[2])
localtime = time.localtime()
hour = str(localtime[3])
min = str(localtime[4])
sec = str(localtime[5])
return year + "年" + month + "月" + day + "日" + " " + hour +"时" + min + "分" + sec + "秒"
if __name__ == "__main__":
date_time = DateTime()
print(date_time.current_date())
print(date_time.current_time())
print(date_time.current_date_time())
print(date_time.from_timestamp_to_date(1254785455))
print(date_time.from_timestamp_to_time(1254785455))
习题4:输入时间,计算距离1949年10月1日的天数
def is_leap_year(year):
if (year%4==0 and year%100!=0) or year%400==0:
return True
else:
return False
def count_days_interval():
input_date=input(
"请输入日期,格式:year-month-day:")
if input_date.count("-")!=2:
print(
"输入日期格式有误,格式:year-month-day,请重新输入日期")
return None
year,month,day=input_date.split("-")
if not (year.isdigit() and month.isdigit() and day.isdigit()):
print(
"输入日期必须为数字,格式:year-month-day,请重新输入日期:")
year=int(year)
month=int(month)
day=int(day)
init_year = 1949
init_month = 10
init_day = 1
if year-init_year==0:
if month ==init_month:
return day -init_day
elif month -init_month==1:
return 31+day-1
else:
return 31+30+day-1
elif year-init_year==1:
month_days=[31,28,31,30,31,30,31,31,30,31,30,31]
leap_day=0
if month >2 and is_leap_year(year):
leap_day=1
days =0
for i in month_days[:month-1]:
days+=i
return 92+leap_day+days+day
else:
month_days=[31,28,31,30,31,30,31,31,30,31,30,31]
leap_day=0
if month >2 and is_leap_year(year):
leap_day=1
days =0
for i in month_days[:month-1]:
days+=i
leap_days=0
for i in range(1950,year):
if is_leap_year(i):
leap_days+=1
years = year -init_year-1
return 92+leap_day+days+day+years*365+leap_days
print(count_days_interval())
以上是关于python学习(29)的主要内容,如果未能解决你的问题,请参考以下文章