python关于文件夹与文件的简单操作
'''
python中有内置的模块,使用时可以直接调用
调用方法:
1、import 模块名 对模块进行导入
2、模块名.函数名 调用函数
'''
import os
import shutil
#重命名文件与文件夹 rename(路径+旧文件(文件夹)名,路径+新文件(文件夹)名)
#os.rename(r'C:\Users\Administrator\Desktop\laowang.txt',r'C:\Users\Administrator\Desktop\老王.txt')
#os.rename(r'C:\Users\Administrator\Desktop\laowang',r'C:\Users\Administrator\Desktop\老王')
#删除文件 remove(路径+文件名) 不能删除文件夹
#os.remove(r'C:\Users\Administrator\Desktop\老王.txt')
#os.remove(r'C:\Users\Administrator\Desktop\老王') #报错,拒绝访问
#创建文件夹 mkdir(路径+文件夹名字) 当文件夹已存在时无法创建
#os.mkdir(r'C:\Users\Administrator\Desktop\老王1')
#os.mkdir(r'C:\Users\Administrator\Desktop\老王12\qwe') #无法创建多级路径
#创建多级路径 makedirs() 当文件夹已存在时无法创建
#os.makedirs(r'C:\Users\Administrator\Desktop\老王12\qwe\fdg\dfg\ert\ert')
#改变默认目录 chdir() cd /返回根目录 cd ../返回上一级目录
#os.chdir(r'C:\Users\Administrator\Desktop\老王12')
#获取目录列表,并返回一个列表 listdir(路径)
#ls = os.listdir(r'C:\Users\Administrator\Desktop')
#print(ls)
#删除空文件夹,没有该文件夹会报错 rmdir(路径+文件夹名)
#os.rmdir(r'C:\Users\Administrator\Desktop\老王')
#删除文件夹+子文件(文件夹),没有该文件夹会报错 rmtree(路径+文件夹名)
#shutil.rmtree(r'C:\Users\Administrator\Desktop\老王12')
#获取当前目录,返回一个字符串 getcwd()
#s = os.getcwd()
#print(s)
#print(type(s))
异常处理:
'''
try:
可能出现异常的代码
except:
对异常信息作出解释
并可以记录异常信息
except后不写任何类,表示捕捉所有异常。如果有异常,会中断执行try内部的程序,
转而执行except,在程序执行完except之后,会继续执行后面的程序
当异常出现的时候,python的解析器会对这种异常进行分析,并将其实例化得到一个异常对象
然后再与except里面的异常类进行匹配,如果匹配成功,将异常赋值给对象,赋值的时候可以使用as
try except虽然能够捕获异常,但是会影响代码的运行效率
所以要将其放在可能会出错的地方
'''
'''
path = input('请输入文件的路径:')
content = None
try:
content = open(path,'r',encoding = 'utf-8')
content = content.read()
except FileNotFoundError as aaa:
print('输入的路径错误')
print(aaa)
print(content)
'''
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)
'''
异常处理内部的变量没有作用域
在python中只有函数与类当中有作用域的概念
其他的都没有作用域
try except当中
例如except Error as sd:
只有上句sd是只作用于异常处理内部的局部变量
'''
if True:
a = 10
print(a)
try:
b = 20
b/=0
except Exception as ex:
print(ex)
print(b)
print(b)
print(ex)
一个简单的小应用:批量修改文件名
import os
import os.path
path = input('请输入完整的路径:')
os.chdir(path) #切换工作目录到当前输入路径
ls = listdir(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)