python实践项目九:操作文件-修改文件名

描述:多个文件,文件名名包含美国风格的日期( MM-DD-YYYY),需要将它们改名为欧洲风格的日期( DD-MM-YYYY)

代码1:先创建100个文件名为美国风格日期的文件(文件路径为项目当前路径下)

 1 #!/usr/bin/python
 2 # -*- coding: UTF-8 -*-
 3 #先创建一百个文件名为美国风格日期的文件
 4 import os,random
 5 for num in range(100):
 6     mm=random.randint(1,12)
 7     dd=random.randint(1,31)
 8     yy=random.randint(1900,2099)
 9     #str.format(),字符串格式化的功能,通过 {} 和 : 来代替以前的 %
10     #{:0>2d}:数字补0 (填充左边, 宽度为2)
11     #参考网址:https://www.runoob.com/python/att-string-format.html
12     date=‘{:0>2d}-{:0>2d}-{}‘.format(mm,dd,yy)
13     #os.getcwd() 方法用于返回当前工作目录
14     #在当前目录下创建一个USdate路径
15     filePath=os.getcwd()+‘\\US\\‘
16     if not os.path.exists(filePath):
17         os.mkdir(filePath)
18     #定义文件名
19     fileName=‘file‘+‘{:0>3d}‘.format(num+1)+‘-‘+date+‘-###‘+‘.txt‘
20     #连接文件路径和文件名
21     fileNameAndPath=filePath+fileName
22     # 根据文件名字符串创建文件
23     file=open(fileNameAndPath,‘w‘)
24     file.write(‘Empty!‘)
25     print ‘%s is created‘ %fileNameAndPath
26     file.close()
27 print ‘Done‘

运行结果:

代码2:复制US文件夹下所有文件到EU文件夹下(文件路径为项目当前路径下),并重命名所有文件

注意:若要重复执行此脚本,需先删除第一次执行此脚本时创建的EU文件夹,否则会报错:WindowsError: [Error 183]

 1 #!/usr/bin/python
 2 # -*- coding: UTF-8 -*-
 3 #在执行此文件前需先执行create100File.py来创建100个文件
 4 #若此脚本需重复执行,需先删除第一次执行此脚本时创建的EUdate文件夹,否则会报错:WindowsError: [Error 183]
 5 #文件名包含美国风格的日期( MM-DD-YYYY),
 6 # 需要将它们改名为欧洲风格的日期( DD-MM-YYYY)
 7 import os,shutil,re
 8 #创建一个识别美国日期的正则表达式
 9 # . :默认匹配除\n之外的任意一个字符
10 # * :匹配*号前的字符0次或多次
11 # ?:匹配前一个字符1次或0次
12 # .*? :合起来可表达任意个字符
13 # re.VERBOSE:表示在正则表达式字符串中允许空白字符和注释
14 #参考网址:https://www.cnblogs.com/zj-luxj/p/6901048.html
15 datePattern=re.compile(
16     r"""
17     ^(.*?)              #日期前面的任意字符                       group1
18     ((0|1)?\d)-        #月份:以0或者1开头的两位正整数            group2、3
19     ((0|1|2|3)?\d)-   #日期:以0或1或2或3开头的两位正整数       group4、5
20     ((19|20)\d\d)    #年份:以19或20开头的四位正整数           group6、7
21     (.*?)$          #日期后面的任意字符                       group8
22     """,re.VERBOSE
23 )
24 #os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表
25 for oldFileName in os.listdir(‘.\US‘):
26     # mo=datePattern.search(amerFileName) #与下面一行代码实现的作用相同
27     #re.search 扫描整个字符串并返回第一个成功的匹配
28     date=re.search(datePattern,oldFileName)
29     #group():https://blog.csdn.net/weixin_43774516/article/details/88364761
30     beforePart=date.group(1)
31     monthPart=date.group(2)
32     dayPart=date.group(4)
33     yearPart=date.group(6)
34     afterPart=date.group(8)
35     #构成新文件名
36     newFileName=beforePart+dayPart+‘-‘+monthPart+‘-‘+yearPart+afterPart
37     #将USdate文件下所有文件复制到新创建的EUdate文件夹下并重命名
38     #os.path.abspath():返回path规范化的绝对路径
39     oldDir=os.path.abspath(‘.‘)+‘\\US\\‘
40     newDir=os.path.abspath(‘.‘)+‘\\EU\\‘
41     if not os.path.exists(newDir):
42         os.mkdir(newDir)
43     #shutil.copy():将第一个参数的路径下的文件复制到第二个参数的路径下
44     shutil.copy(oldDir+oldFileName,newDir)
45     #os.rename():重命名函数,第一个参数为旧文件名,第二个为新文件名
46     os.rename(newDir+oldFileName,newDir+newFileName)
47     print oldFileName,‘已重命名为:‘,newFileName
48 print ‘Done!‘

运行结果:

原文地址:https://www.cnblogs.com/heyangblog/p/11159351.html

时间: 2024-09-30 21:47:20

python实践项目九:操作文件-修改文件名的相关文章

Python笔记四之操作文件

一.字符串方法补充(join.split) join方法: # join方法,连接字符串 1.把一个list变成了字符串 2.通过某个字符把list里面的元素连接起来 # 3.只要是可以循环的都可以连接起来 l=['a','b','c'] sl=str(l) #sl="['a','b','c']" str()把对象转换成一个字符串,整个list变成一个字符串,包含中括号 print(l,type(l)) print(sl,type(sl)) res=''.join(l)#以空连接起来,

Python全栈自动化系列之Python编程基础(操作文件)

一.打开文件 open函数: 1)常见参数:第一个,要打开文件或者文件的路径:第二个参数,文件打开的模式,第三个参数,encoding,用来指定文件打开的编码格式(注意,使用rb模式时就不要使用了) 2)常见文件打开的模式: ①r:只读模式,读取普通文件 ②rb:只读模式,是以二进制的编码格式去打开文件,可以读取图片.视频等 3)参数一详解: ①当读取同级目录下的文件,可以直接写文件名 ②当读取的不在同一级目录下的文件时,必须要写上文件的绝对路径 注意:使用open这个方法时,读完文件记得使用c

js 下载文件 修改文件名

用js下载文件,使用<a>标签,添加download属性即可. var a = document.createElement("a"); a.href = "http://XXX.com/audioStream/8a9dbae9d0859e48fc1f590fcf6d4ccc.mp3": a.download ="test.mp3"; a.click(); 但是如果想给文件重新命名,貌似js无法实现. 因此考虑后台实现,用java代理

Python学习笔记九:文件I/O

打印到屏幕: 1 #!/usr/bin/python 2 3 print "Python is really a great language,", "isn't it?"; 读取键盘输入: raw_input input 1 #!/usr/bin/python 2 3 str = raw_input("Enter your input: "); 4 print "Received input is : ", str inpu

python实践项目八:生成随机试卷文件

描述:匹配美国50个州的首府. 下面是程序需要完成的任务: • 创建35 份不同的测验试卷. • 为每份试卷创建50 个多重选择题,次序随机. • 为每个问题提供一个正确答案和3 个随机的错误答案,次序随机. • 将测验试卷写到35 个文本文件中. • 将答案写到35 个文本文件中. 这意味着代码需要做下面的事: • 将州和它们的首府保存在一个字典中. • 针对测验文本文件和答案文本文件,调用open(). write()和close(). • 利用random.shuffle()随机调整问题和

python模拟SQL语句操作文件

1.需求 在文本界面输入SQL语句,查询相应的数据,例如输入下面的语句 print(''' 支持大小写的SQL语句查询,大写或者小写都可以 1. select * from db1.emp 2. select * from db1.emp limit 4 3. select * from db1.emp where id > 24 4. select * from db1.emp where name like 李 5. select * from db1.emp where id > 10

项目中js文件修改后浏览器不能及时更新的解决办法

现在就分别把IE,firefox,chrome中解决办法贴出来供大家参考: 1.firefox(火狐浏览器)解决问题 第一步,在浏览器中敲入:about:config ,然后回车 第二步,在显示出的内容中找到下面的列表内容,双击下面图中圈出的内容 在出现的对话框中将3改为1 然后关闭这个页面,你就可以让你的项目在更新时浏览器及时地更新你项目中的js文件. 2.IE 打开IE浏览器,同时按住ALT+X,在出现的页面上点击Internet选项,进入Internet选项配置界面中,点击在下面的图中圈出

python中os模块操作目录与文件名小结

(1). 创建目录: SigleDir = 'sigle_layer' MultiDir = 'D:\\Web\\multi_layer' 创建单层目录: os.mkdir(SigleDir) 创建多层目录: os.makedirs(MultiDir) (2). 文件路径和文件名的折分与合并 拆分:  dirname, filename = os.path.split('D:\\python_code\\split_functon.py') print 'dirname=',dirname,';

python实践项目一:Collatz函数

要求1:编写一个名为 collatz()的函数,它有一个名为 number 的参数.如果参数是偶数,那么 collatz()就打印出 number // 2, 并返回该值.如果 number 是奇数, collatz()就打印并返回 3 * number + 1.然后编写一个程序,让用户输入一个整数,并不断对这个数调用 collatz(), 直到函数返回值1. 要求2:输入验证:在前面的项目中添加 try 和 except 语句,检测用户是否输入了一个非整数的字符串.正常情况下, int()函数