1、文件的重命名和删除:
在python中有os模块(py文件),与操作系统有关的模块这里可以完成文件的操作。
使用模块的方式:
1、导入
2、使用模块名. 调用出此py文件中内容
例:import os
import os.path
def main():
pathSrc = input('请输入源文件的路径:')
fileName = input('请输入源文件的名字:')
pathDest = input('请输入目标文件夹的路径:')
i = 2
while True:
if not hasFile(pathDest,fileName):
copy_paste(os.path.join(pathSrc,fileName),os.path.join(pathDest,fileName))
break
elif not hasFile(pathDest,doFileName(fileName)):
copy_paste(os.path.join(pathSrc,fileName),os.path.join(pathDest,doFileName(fileName)))
break
elif not hasFile(pathDest,doFileName(fileName,i)):
copy_paste(os.path.join(pathSrc,fileName),os.path.join(pathDest,doFileName(fileName,i)))
break
else:
i+=1
def hasFile(path,fileName):
'''
判断文件是否存在
path:文件所在的路径
fileName:文件的名字
'''
return os.path.exists(os.path.join(path,fileName))
def doFileName(fileName,num=None):
'''
返回处理后文件的名字
如果num是None,只拼接副本
否则,拼接副本加数字
'''
newFileName = None
index = fileName.rfind('.')
if num==None:
if index!=-1:
newFileName = '%s - 副本%s'%(fileName[:index],fileName[index:])
else:
newFileName= '%s - 副本'%fileName
else:
if index!=-1:
newFileName = '%s - 副本 (%s)%s'%(fileName[:index],num,fileName[index:])
else:
newFileName= '%s - 副本 (%s)'%(fileName,num)
return newFileName
def copy_paste(pathSrc,pathDest):
'''赋值 粘贴'''
fileSrc = open(pathSrc,'rb')
fileDest = open(pathDest,'wb')
content = fileSrc.readline()
while content!=b'':
fileDest.write(content)
content = fileSrc.readline()
fileSrc.close()
fileDest.close()
'''
执行。。。。。。。
'''
main()
2、文件的重命名:
import os
import os.path
#输入完整路径
path = input('输入路径:')
#列出所有内容
ls = os.listdir(path)
#切换工作目录
os.chdir(path)
#遍历
for i in ls:
#判断是否是文件
if os.path.isfile(i):
num = i.rfind('.')
if num!=-1:
newName = i[:num]+'-new'+i[num:]
#重命名
os.rename(i,newName)
3、异常的处理:
格式:try:
可能出现的代码
except:
对异常信息做出的解释和记录
path = input('输入文件的路径:')
print('1......')
content = None
try:
print('2......')
content = open(path,'r',encoding='utf-8').read()
a = 10/0
print('3......')
except (FileNotFoundError,NameError,ZeroDivisionError) as ex:
print('4......')
print('输入的路径不存在')
print(ex)
print('5......')
print(content)
网友评论