#有一个文件,文件名为output_1981.10.21.txt 。
# 下面使用Python: 读取文件名中的日期时间信息,并找出这一天是周几。
# 将文件改名为output_YYYY-MM-DD-W.txt
# (YYYY:四位的年,MM:两位的月份,DD:两位的日,W:一位的周几,并假设周一为一周第一天) '''
解题 思路:
1、获取文件名,截取日期 ,生成日期变量参数 '''
import os,re
import time,datetime
class hello:
def __init__(self):
print('求文件名,取出日期,算出1年中哪一天,更改文件名')
def get_date(self,filename):
(filepath,tempfilename) = os.path.split(filename)#将文件名和路径分割开。
(shotname,extension ) = os.path.splitext(tempfilename)#分离文件名与扩展名
dateStr = re.split('_',shotname)[1]
date = re.split('[.]',dateStr)
return date
#给个时间 ,找出这一天是1年中的哪一天
'''
解题 思路:
一年12个月的天数弄成一个list,只有2月份不确认,闰年28天,非闰年29天,得出2月份天数。
求前面几个月的天数之和+当月天数,就是当当年第几天
'''
def which_day(self):
num = 0
date_list = self.get_date('D:\python\learn\output_1981.10.21.txt')
year =int( date_list[0])
month = int(date_list[1])
day = int(date_list[2])
sum = 0
#计算2月份的天数
if(year%4==0):
num = 28
elif(year%400==0):
num = 28
else:
num =29
month_list = [31, num, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for i in range(0,month-1):
sum +=month_list[i]
#第几天
sum +=day
return sum,year,month,day #获取当前系统时间 年月日 周
def get_now_time(self):
now = time.localtime()
weekday = time.strftime('%w',now)
year = datetime.datetime.now().year
month = datetime.datetime.now().month
day = datetime.datetime.now().day
return year,month,day,weekday def modify_filename(self,filename,newname):
filepath,tempfilename = os.path.split(filename)
print(filepath)
print(tempfilename)
os.rename(filepath+'\\'+tempfilename,filepath+'\\'+newname)
print('修改成功!') fo = hello()
sum,year,month,day = fo.which_day()
print(year,'年',month,'月',day,'日是一年中的第',sum,'天')
#修改文件名称
(year1,month1,day1,weekday1) = fo.get_now_time()
print(type(year1))
newname = 'output_'+str(year1)+'-'+str(month1)+'-'+str(day1)+'-'+str(weekday1)+'.txt'
fo.modify_filename(r'D:\python\learn\output_1981.10.21.txt',newname)

python一天一题(1)的更多相关文章

  1. python一天一题(3)

    #--coding=utf8-- from selenium import webdriver import time import logging import os.path ''' 搜索取搜索的 ...

  2. python一天一题(2)

    python查询mysql数据库 import pymysql host = '192.168.74.5' user = 'root' passwd ='root' port = 3310 db = ...

  3. Android面试一天一题(1Day)

    写在前面 该博客思路源于在简书看到goeasyway博主写的Android面试一天一题系列,无copy之意,仅为让自己总结知识点,成长一点点.先感谢各位大神的无私分享~! 关于题目,大部分则出自And ...

  4. Python面试真题答案或案例

    Python面试真题答案或案例如下: 请等待. #coding=utf-8 #1.一行代码实现1--100之和 print(sum(range(1,101))) #2.如何在一个函数内部修改全局变量 ...

  5. Python基础数据类型题

    Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...

  6. 『Python题库 - 填空题』151道Python笔试填空题

    『Python题库 - 填空题』Python笔试填空题 part 1. Python语言概述和Python开发环境配置 part 2. Python语言基本语法元素(变量,基本数据类型, 基础运算) ...

  7. Python练习100题

    Python练习100题 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #Filename:001.py cnt = 0#count the sum of res ...

  8. 21天学通Python课后实验题4.6

    21天学通Python课后实验题4.6 1. 编程实现用户输入一门课程的两门子课程成绩,第一门子课程60分以上,则显示“通过”,第一门子课程不及格,则显示“未通过”,第一门子课程及格,而第二门子课程不 ...

  9. Python语言上机题实现方法(持续更新...)

    Python语言上机题实现方法(持续更新...) 1.[字符串循环左移]给定一个字符串S,要求把S的前k个字符移动到S的尾部,如把字符串"abcdef"前面的2个字符'a'.'b' ...

随机推荐

  1. C++ 读写MySQL经典 (转载)

    from: http://blog.csdn.net/jemlee2002/article/details/1523164   看过很多C或是C++操作MySQL数据库的文章,大部分太吃力了,甚至有一 ...

  2. 深入HBase架构解析(二)【转】

    转自:http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html 前言 这是<深入HBase架构解析(一)>的续,不多废话, ...

  3. 【内核】linux内核启动流程详细分析

    Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码, 主要作用 ...

  4. Mysql 多表查询详解

    Reference:  https://blog.csdn.net/jintao_ma/article/details/51260458 一.前言 二.示例 三.注意事项 一.前言 上篇讲到Mysql ...

  5. centos 配置subversion svn

    Subversion是一个自由,开源的版本控制系统. 1.安装: yum install subversion 2.配置 mkdir -p /var/svn/svnrepos #新建文件夹 svnad ...

  6. PHP中的WebService

    Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间, 无论它们所使用的语言. ...

  7. oracle中for循环

    DECLARE );-- 定义一个字符串变量str BEGIN .. loop -- INSERT INTO FW_TEST(NAME) VALUES('bbb' + i);DECODE('1','' ...

  8. DIV+CSS兼容解决DIV最大宽度和最小宽度问题

    在制作网页中,我们经常会碰到min/max-width,min/max-height在IE6底下是无效的,这也是web设计师最头疼的问题之一,以下的方法可以解决这些难题,并且比较简约.当然,如果你还有 ...

  9. Android 桌面Widget开发要点(时间日期Widget)

    最近需要编写一个日期时间的桌面Widget用来关联日历程序,以前很少写桌面Widget.对这方面技术不是很熟悉,今天花时间重新整理了一下,顺便把编写一个简单时间日期程序过程记录下来. 桌面Widget ...

  10. Mysql 根据时间统计总数

    代码写法: SELECT date_format(examinee_pay_time, '%Y-%m-%d') as payDate, COUNT(examinee_id) As realityApp ...