# 1、接收用户输入的文件名(要备份的文件名)
oldname = input('请输入要备份的文件名称:') # python.txt
# 2、规划备份文件名(python[备份].txt)
# 搜索点号
index = oldname.rfind('.')
# 返回文件名和文件后缀
name = oldname[:index]
postfix = oldname[index:]
newname = name + '[备份]' + postfix
# 3、对文件进行备份操作
old_f = open(oldname, 'rb')
new_f = open(newname, 'wb')
# 读取源文件内容写入新文件
while True:
content = old_f.read(1024)
if len(content) == 0:
break
new_f.write(content)
# 4、关闭文件
old_f.close()
new_f.close()
遗留问题:我们要备份的文件名称都是由用户通过input方法输入而来的,但是一定要记住,只要在程序中有人为输入,强烈建议对用户输入的数据进行校检。
所有用户的输入都是不靠谱的!
解决用户输入文件名称异常问题:
# 1、接收用户输入的文件名(要备份的文件名)
oldname = input('请输入要备份的文件名称:') # python.txt
# 2、规划备份文件名(python[备份].txt)
# 搜索点号
index = oldname.rfind('.')
# 对index进行判断,判断是否合理(index > 0)
if index > 0:
# 返回文件名和文件后缀
name = oldname[:index]
postfix = oldname[index:]
newname = name + '[备份]' + postfix
# 3、对文件进行备份操作
old_f = open(oldname, 'rb')
new_f = open(newname, 'wb')
# 读取源文件内容写入新文件
while True:
content = old_f.read(1024)
if len(content) == 0:
break
new_f.write(content)
# 4、关闭文件
old_f.close()
new_f.close()
else:
print('请输入正确的文件名称,否则无法进行备份操作...')
在Python中文件和文件夹的操作要借助os模块里面的相关功能,具体步骤如下:
第一步:导入os模块
import os
第二步:调用os模块中的相关方法
os.函数名()
编号 | 函数 | 功能 |
---|---|---|
1 | os.rename(目标文件名称,新文件名称) | 对文件进行重命名操作 |
2 | os.remove(要删除文件名称) | 对文件进行删除操作 |
案例:把Python项目目录下的python.txt文件,更名为linux.txt,休眠20s,刷新后,查看效果,然后对这个文件进行删除操作。
# 第一步:导入os模块
import os
# 第三步:引入time模块
import time
# 第二步:使用os.rename方法对python.txt进行重命名
os.rename('python.txt', 'linux.txt')
# 第四步:休眠20s
time.sleep(20)
# 第五步:删除文件(linux.txt)
os.remove('linux.txt')
前提:
import os
相关方法:
编号 | 函数 | 功能 |
---|---|---|
1 | os.mkdir(新文件夹名称) | 创建一个指定名称的文件夹 |
2 | os.getcwd() | current work directory,获取当前目录名称 |
3 | os.chdir(切换后目录名称) | change directory,切换目录 |
4 | os.listdir(目标目录) | 获取指定目录下的文件信息,返回列表 |
5 | os.rmdir(目标目录) | 用于删除一个指定名称的"空"文件夹 |
案例1:
# 导入os模块
import os
# 1、使用mkdir方法创建一个images文件夹
# os.mkdir('images')
# os.mkdir('images/avatar')
# 2、getcwd = get current work directory
print(os.getcwd())
# 3、os.chdir,ch = change dir = directory切换目录
os.chdir('images/avatar')
print(os.getcwd())
# 切换到上一级目录 => images
os.chdir('../../')
print(os.getcwd())
# 4、使用os.listdir打印当前所在目录下的所有文件,返回列表
print(os.listdir())
# 5、删除空目录
os.rmdir('images/avatar')
案例2:准备一个static文件夹以及file1.txt、file2.txt、file3.txt三个文件
① 在程序中,将当前目录切换到static文件夹
② 创建一个新images文件夹以及test文件夹
③ 获取目录下的所有文件
④ 移除test文件夹
# 导入os模块
import os
# ① 在程序中,将当前目录切换到static文件夹
os.chdir('static')
# print(os.getcwd())
# ② 创建一个新images文件夹以及test文件夹
# os.mkdir('images')
# os.mkdir('test')
# ③ 获取目录下的所有文件
# print(os.listdir())
for file in os.listdir():
print(file)