1 将当前目录的所有扩展名为html的文件重命名为扩展名为htm的文件。
1 file_list = os.listdir('.') #获取当前目录下的文件列表
2 for filename in file_list:
3 pos = filename.rindex('.')
4 if filename[pos+1:] == 'html':
5 newname=filename[:pos + 1] + 'htm'
6 os.rename(filename,newname)
7 print(filename + '更名为:' + newname)
8
9 #下面的代码可能更简洁一点
10 file_list = [filename for filename in os.listdir('.') if filename.endswith('html')]
11 for name in file_list:
12 newname = name[:-4] + 'htm'
13 os.rename(name,newname)
14 print(filename + '更名为:' + newname)
2 计算文件侧CRC32值
1 import sys
2 import zlib
3 import os.path
4
5 filename = sys.argv[0] #第一个参数是文件名
6 if os.path.isfile(filename):
7 fp = open(filename,'rb')
8 contents = fp.read()
9 fp.close()
10 print(zlib.crc32(contents.encode()))
11 else:
12 print('file not exists')
拓展知识:CRC又称循环冗余检查吗,常用于数据存储和通信领域,具有极强的检错能力。CRC32产生校验值时源数据快的每一个bit(位)都参与了计算,所以数据块中即使只有一位发生了变化,也会得到不同的CRC32值,也可用于文件完整性保护。
3 判断一个文件是否为GIF图像文件。任何一种文件都具有专门的文件头结构,在文件头中存放了大量的信息,其中就包括该文件的类型。通过文件头信息来判断文件类型的方法可以得到更加准确的信息,而不依赖于文件扩展名。
1 def is_gif(fname):
2 f = open(fname,'r')
3 first4 = tuple(f.read(4))
4 f.close()
5 print(first4)
6 return first4 == ('G','I','F','8')
7
8 print(is_gif('test.gif'))
4 编程程序,进行文件夹增量备份
程序功能与用法:指定源文件夹与目标文件夹,自动检测自上次备份以来源文件夹中内容的改变,包括修改的文件、新建的文件、新建的文件夹等,自动复制新增或修改过的文件到目标文件夹中,自上次备份以来没有修改过的文件将被忽略而不复制,从而实现增量备份。本例属于系统运维的范畴。
1 import os
2 import filecmp
3 import shutil
4 import sys
5
6 def autoBackup(scrDir,dstDir):
7 if ((not os.path.isdir(scrDir)) or (not os.path.isdir(dstDir))
8 or (os.path.abspath(scrDir) != scrDir) or (os.path.abspath(dstDir) != dstDir)):
9 usage()
10
11 for item in os.listdir(scrDir):
12 scrItem = os.path.join(scrDir,item)
13 dstItem = scrItem.replace(scrDir,dstDir)
14
15 if os.path.isdir(scrItem):
16 #创建新增的文件夹,保证目标文件夹的结构与原始文件夹一致
17
18 if not os.path.exists(dstItem):
19 os.makedirs(dstItem)
20 print