- 论坛徽章:
- 0
|
上面的代码也有问题,有的文件是第一行相同但是内容不同,不应该删除文件,应该重命名才对,再次修改了程序
# -*- coding: gbk -*-
'''
这个模块可以用来对一个路径已经其子路径下的文件进行修改,它会删除所有的.htm文件,遇到.txt文
件它会读取第一行,去掉全角空格作为文件名
'''
import os
def _rename(old,new):
new2=''
for i in range(0,len(new),2):
a=new[i:i+2]
if a!='\xa1@':
new2+=a;
print 'new name =',new2
print 'old name =',old
if new2!=old:
print 'begin to rename',old,new2
try:
os.rename(old,new2)
except WindowsError,e:
if str(e)=='[Error 183] ':
print 'already have ',new2
new2=new2[:-5]+str(int(new2[-5])+1)+'.txt'
print 'save as',new2
rename(old,new2)
print 'rename',old,'to',new2
def excuepath(p):
'传递需要进行处理的路径作为参数'
workdir=p
os.chdir(workdir)
cwd=os.getcwd()
dirs=os.listdir(cwd)
for tmp in dirs:
path=os.path.join(cwd,tmp)
print 'path=',path
if os.path.isfile(path):
if tmp[-4:]=='.htm':
os.remove(path)
print 'del',path
elif tmp[-4:]=='.txt':
f=open(path,'r')
s=f.readline()
f.close()
s=s[:-1]
print'first line =',s
s=s+'0.txt'
try:
_rename(tmp,s)
except WindowsError,e:
if str(e)=='[Error 183] ':
s=s+'1'
elif os.path.isdir(path):
loop(path)
if __name__=='__main__':
loop(r'E:\ABCTemp\') |
|