Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 294|回复: 0

[默认分类] Python 实现文件复制、删除

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-7-6 18:22:42 | 显示全部楼层 |阅读模式
        用python实现了一个小型的自动发版本的工具。这个“自动发版本”有点虚, 只是简单地把debug 目录下的配置文件复制到指定目录,把Release下的生成文件复制到同一指定,过滤掉不需要的文件夹(.svn),然后再往这个指定目录添加几个特定的文件。
        这个是我的第一个python小程序。
        下面就来看其代码的实现。
    首先插入必要的库:


    1.   
    2.    
    3.    1
    4.    import os
    5.    2
    6.    import os.path
    7.    3
    8.    import shutil
    9.    4
    10.    import time, datetime
    11.   
    复制代码


    然后就是一大堆功能函数。第一个就是把某一目录下的所有文件复制到指定目录中:


    1.   
    2.    
    3.     1
    4.    def copyFiles(sourceDir, targetDir):
    5.     2
    6.    
    7.    if
    8.     sourceDir.find(
    9.    "
    10.    .svn
    11.    "
    12.    )
    13.    >
    14.    
    15.    0
    16.    :
    17.     3
    18.    
    19.    return
    20.    
    21.     4
    22.    
    23.    for
    24.     file
    25.    in
    26.     os.listdir(sourceDir):
    27.     5
    28.     sourceFile
    29.    =
    30.     os.path.join(sourceDir, file)
    31.     6
    32.     targetFile
    33.    =
    34.     os.path.join(targetDir, file)
    35.     7
    36.    
    37.    if
    38.     os.path.isfile(sourceFile):
    39.     8
    40.    
    41.    if
    42.     not os.path.exists(targetDir):
    43.     9
    44.     os.makedirs(targetDir)
    45.    10
    46.    
    47.    if
    48.     not os.path.exists(targetFile) or(os.path.exists(targetFile) and (os.path.getsize(targetFile)
    49.    !=
    50.     os.path.getsize(sourceFile))):
    51.    11
    52.     open(targetFile,
    53.    "
    54.    wb
    55.    "
    56.    ).write(open(sourceFile,
    57.    "
    58.    rb
    59.    "
    60.    ).read())
    61.    12
    62.    
    63.    if
    64.     os.path.isdir(sourceFile):
    65.    13
    66.     First_Directory
    67.    =
    68.     False
    69.    14
    70.     copyFiles(sourceFile, targetFile)
    71.   
    复制代码


    删除一级目录下的所有文件:


    1.   
    2.    
    3.    1
    4.    def removeFileInFirstDir(targetDir):
    5.    2
    6.    
    7.    for
    8.     file
    9.    in
    10.     os.listdir(targetDir):
    11.    3
    12.     targetFile
    13.    =
    14.     os.path.join(targetDir, file)
    15.    4
    16.    
    17.    if
    18.     os.path.isfile(targetFile):
    19.    5
    20.     os.remove(targetFile)
    21.   
    复制代码


    复制一级目录下的所有文件到指定目录:


    1.   
    2.    
    3.    1
    4.    def coverFiles(sourceDir, targetDir):
    5.    2
    6.    
    7.    for
    8.     file
    9.    in
    10.     os.listdir(sourceDir):
    11.    3
    12.     sourceFile
    13.    =
    14.     os.path.join(sourceDir, file)
    15.    4
    16.     targetFile
    17.    =
    18.     os.path.join(targetDir, file)
    19.    5
    20.     #cover the files
    21.    6
    22.    
    23.    if
    24.     os.path.isfile(sourceFile):
    25.    7
    26.     open(targetFile,
    27.    "
    28.    wb
    29.    "
    30.    ).write(open(sourceFile,
    31.    "
    32.    rb
    33.    "
    34.    ).read())
    35.   
    复制代码


    复制指定文件到目录:


    1.   
    2.    
    3.    1
    4.    def moveFileto(sourceDir, targetDir):
    5.    2
    6.     shutil.copy(sourceDir, targetDir)
    7.   
    复制代码


    往指定目录写文本文件:


    1.   
    2.    
    3.    1
    4.    def writeVersionInfo(targetDir):
    5.    2
    6.     open(targetDir,
    7.    "
    8.    wb
    9.    "
    10.    ).write(
    11.    "
    12.    Revison:
    13.    "
    14.    )
    15.   
    复制代码


    返回当前的日期,以便在创建指定目录的时候用:


    1.   
    2.    
    3.     1
    4.    def getCurTime():
    5.     2
    6.     nowTime
    7.    =
    8.     time.localtime()
    9.     3
    10.     year
    11.    =
    12.     str(nowTime.tm_year)
    13.     4
    14.     month
    15.    =
    16.     str(nowTime.tm_mon)
    17.     5
    18.    
    19.    if
    20.     len(month)
    21.    <
    22.    
    23.    2
    24.    :
    25.     6
    26.     month
    27.    =
    28.    
    29.    "
    30.    0
    31.    "
    32.    
    33.    +
    34.     month
    35.     7
    36.     day
    37.    =
    38.     str(nowTime.tm_yday)
    39.     8
    40.    
    41.    if
    42.     len(day)
    43.    <
    44.    
    45.    2
    46.    :
    47.     9
    48.     day
    49.    =
    50.    
    51.    "
    52.    0
    53.    "
    54.    
    55.    +
    56.     day
    57.    10
    58.    
    59.    return
    60.     (year
    61.    +
    62.    
    63.    "
    64.    -
    65.    "
    66.    
    67.    +
    68.     month
    69.    +
    70.    
    71.    "
    72.    -
    73.    "
    74.    
    75.    +
    76.     day)
    77.   
    复制代码


    然后就是主函数的实现了:


    1.   
    2.    
    3.     1
    4.    if
    5.     __name__
    6.    ==
    7.    "
    8.    __main__
    9.    "
    10.    :
    11.     2
    12.     print
    13.    "
    14.    Start(S) or Quilt(Q) \n
    15.    "
    16.    
    17.     3
    18.     flag
    19.    =
    20.     True
    21.     4
    22.    
    23.    while
    24.     (flag):
    25.     5
    26.     answer
    27.    =
    28.     raw_input()
    29.     6
    30.    
    31.    if
    32.    
    33.    "
    34.    Q
    35.    "
    36.    
    37.    ==
    38.     answer:
    39.     7
    40.     flag
    41.    =
    42.     False
    43.     8
    44.     elif
    45.    "
    46.    S
    47.    "
    48.    ==
    49.     answer :
    50.     9
    51.     formatTime
    52.    =
    53.     getCurTime()
    54.    10
    55.     targetFoldername
    56.    =
    57.    
    58.    "
    59.    Build
    60.    "
    61.    
    62.    +
    63.     formatTime
    64.    +
    65.    
    66.    "
    67.    -01
    68.    "
    69.    
    70.    11
    71.     Target_File_Path
    72.    +=
    73.     targetFoldername
    74.    12
    75.    
    76.    13
    77.     copyFiles(Debug_File_Path, Target_File_Path)
    78.    14
    79.     removeFileInFirstDir(Target_File_Path)
    80.    15
    81.     coverFiles(Release_File_Path, Target_File_Path)
    82.    16
    83.     moveFileto(Firebird_File_Path, Target_File_Path)
    84.    17
    85.     moveFileto(AssistantGui_File_Path, Target_File_Path)
    86.    18
    87.     writeVersionInfo(Target_File_Path
    88.    +
    89.    "
    90.    \\ReadMe.txt
    91.    "
    92.    )
    93.    19
    94.     print
    95.    "
    96.    all sucess
    97.    "
    98.    
    99.    20
    100.    
    101.    else
    102.    :
    103.    21
    104.     print
    105.    "
    106.    not the correct command
    107.    "
    108.   
    复制代码


        感觉是果然简单, 不过简单的原因是因为库函数丰富,语言基本特性的简单真没感觉出来。
    回复

    使用道具 举报

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

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-24 04:24 , Processed in 0.301077 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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