文件的备份

python 文件处理二

01文件备份系统
需求:输入文件的名字,然后程序自动完成对文件进行备份
oldFileName = input(“请输入要拷贝的文件名字:”)

oldFile = open(oldFileName,‘r’)

#如果打开文件
if oldFile:

提取文件的后缀

fileFlagNum = oldFileName.rfind(’.’)
if fileFlagNum > 0:
fileFlag = oldFileName[fileFlagNum:]

#组织新的文件名字
newFileName = oldFileName[:fileFlagNum] + ‘[复件]’ + fileFlag

创建新文件

newFile = open(newFileName, ‘w’)

#把旧文件中的数据,一行一行的进行复制到新文件中
for lineContent in oldFile.readlines():
newFile.write(lineContent)

关闭文件

oldFile.close()
newFile.close()

练习 备份文件夹里的所有文件

import os

def copy_file(oldFileName):

#定位后缀名符号.的位置

fileNameFlag = oldFileName.rfind(’.’)#-1

#切片后缀名 包括.

nameHouZhui = oldFileName[fileNameFlag:]#[-1:]

#切片文件名 不包括.

fileName = oldFileName[:fileNameFlag]#[:-1]

#生成新文件名

newFileName = fileName + ‘(1)’ + nameHouZhui

#生成一个新文件

newFileOpen = open(newFileName,‘w’)

#打开旧文件

oldFileOpen = open(oldFileName,‘r’)

#通过循环以行为单位写入

for line in oldFileOpen.readlines():

newFileOpen.write(line)

newFileOpen.close()

oldFileOpen.close()

def copy_dir(oldFileName):

#进入子路径后,当前的操作路径要改变

global baseDir

baseDir += ‘/’ + oldFileName

os.chdir(os.getcwd()+’/’+oldFileName)

files = os.listdir(baseDir)

#获取当前路径的文件信息后,开始拷贝

start_copy()

def start_copy():

#因为在深入复制的过程中,操作的路径不断变化,所以

#要在方法中修改全局变量的值

global baseDir

#用局部变量标记当前的操作记录

#当深入的层数较多时,返回上一层是要记住上一层的操作路径

startDir = baseDir

fileList = os.listdir(startDir)

for oldFileName in fileList:

os.chdir(startDir)

if os.path.isfile(oldFileName):

copy_file(oldFileName)

else:

baseDir = startDir

copy_dir(oldFileName)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值