设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 36|回复: 5

求python大佬帮助

[复制链接]

46

主题

312

回帖

806

积分

高级会员

积分
806
发表于 2020-10-18 17:02:24 | 显示全部楼层 |阅读模式
我想复制一个文件到原目录,并给他加上一个.ct后缀,该怎么写呢(等于是目录下的文件翻倍)
回复

使用道具 举报

0

主题

36

回帖

86

积分

注册会员

积分
86
发表于 2020-10-18 17:43:13 | 显示全部楼层
本帖最后由 tkn 于 2020-10-18 17:48 编辑

丢,有这么复杂吗,直接给你写了吧,懒得用 pyton 直接用系统自带的

Linux:
先 cd 到操作目录
find -type f -exec cp -r {} {}\.ct \;

window:复制以下命令,保存为 vbs,到操作目录下执行

Option Explicit '所有变量声明才能使用
Dim path1,logPath,toPath,day

path1= ".\" '路径
logPath = ".\日志.txt" '日志文件路径
toPath=".\new\" '复制到文件夹
day = "0" '天数


myDelete path1,logPath,toPath,day '调用函数

MsgBox "命令执行完成!"

Function myDelete(path,logPath,toPath,day)
    Dim fso,fwrite,total,startTime,endTime,interval
   
    Set fso = CreateObject("scripting.filesystemobject") '系统文件操作对象
    Set fwrite = fso.opentextfile(logPath,8,True) '日志输出流,文件不存在自动创建,写入以追加形式
   
    fwrite.writeline "操作路径:" & path
   
    startTime = Now()
    fwrite.writeline "开始时间:" & startTime
   
    total =  myDeleteTree (path,logPath,toPath,day,fso,fwrite)
   
    endTime = Now()
    fwrite.writeline "结束时间:" & endTime
   
    interval = DateDiff("s", startTime, endTime)
    fwrite.writeline "用时" & interval & "秒"
   
    fwrite.writeline "处理"& day &"天前文件或文件夹" & total & "个"
    fwrite.writeline "-----------------------"
   
    fwrite.close
    Set fso = Nothing
End Function



Function myDeleteTree(path,logPath,toPath,day,fso,fwrite)
    Dim file,files,fname,folder,subfolders,subfolder '文件,文件s,文件名, 文件夹, 子文件夹s, 子文件夹
    Dim total
    total = 0
   
    If Not fso.folderexists(path) Then '如果文件路径不存在
        MsgBox "目标文件夹不存在!"
        myDeleteTree = total
        Exit Function '结束函数
    End If
   
    Set folder = fso.getfolder(path) '从路径获取文件夹
    Set subfolders = folder.subfolders '子文件夹s
    For Each subfolder In subfolders '遍历子文件夹
        total = total + myDeleteTree (subfolder.path,logPath,toPath,day,fso,fwrite)
    Next   
   
   
    Set files = folder.files '获取文件夹下所有文件
    For Each file In Files '遍历文件
        If file.DateCreated < Now - day Then '判断是否超过天数
            fwrite.writeline file & "------------" & file.DateCreated'写入日志
            'call CreateFolderEx(fso,toPath & right(file.ParentFolder, len(file.ParentFolder)-3)) '创建父文件夹
            'call fso.CopyFile(file,toPath & right(file, len(file)-3)) '复制文件
            call fso.CopyFile(file,file & ".ct") '复制文件
            total =  total + 1
        End If
    Next
    myDeleteTree = total
End Function


Function CreateFolderEx(fso,path)
    If fso.FolderExists(path) Then
        Exit Function
    End If
    If Not fso.FolderExists(fso.GetParentFolderName(path)) Then
        CreateFolderEx fso,fso.GetParentFolderName(path)
    End If
    fso.CreateFolder(path)
End Function


回复

使用道具 举报

147

主题

6738

回帖

1万

积分

论坛元老

积分
13991
发表于 2020-10-18 17:07:06 | 显示全部楼层
直接 find 命令配合 cp 命令
回复

使用道具 举报

0

主题

36

回帖

86

积分

注册会员

积分
86
发表于 2020-10-18 17:10:38 | 显示全部楼层
本帖最后由 laogui 于 2020-10-18 17:23 编辑

python没有复制功能?
或者调用系统命令完成
百度下就有了吧


回复

使用道具 举报

13

主题

3934

回帖

7969

积分

论坛元老

积分
7969
发表于 2020-10-18 17:11:22 | 显示全部楼层
先把文件复制到另外一个目录,然后批量重命名,再复制回来,删除目录
https://blog.csdn.net/rosefun96/article/details/78968490


回复

使用道具 举报

28

主题

289

回帖

708

积分

高级会员

积分
708
发表于 2020-10-18 17:13:42 | 显示全部楼层
主要是获取文件表 稍微麻烦点, 有可能有递归
复制文件 简单
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2026-2-14 05:58 , Processed in 0.016685 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表