将后缀附加到文件名并移动

时间:2014-12-29 06:02:07

标签: python python-2.7 filenames synology

我正在寻求帮助。我正在尝试使自动文件分拣机基本上想到一个电子文件柜。我在Synology Diskstation上运行它,它运行Python 2.7。

======

来源= / volume1 / documents / unfiled 目的地= / volume1 / documents / statements /

源文件夹里面会有很多文件和类型。我希望脚本执行以下操作:

浏览源文件夹, 找到第一个文件 - 查看文件名(非区分大小写)

示例文件名;

  • YYYY bofa.pdf ... 2014 bofa.pdf
  • YYYY-MM bofa.pdf ... 2014-01 bofa.pdf
  • YYYY-MM-DD boba letter.pdf ... 2014-01-12 bofa letter.pdf
  • YYYY bofa 1099int.pdf ... 2014 bofa 1099int.pdf
  • YYYY Bank of America.pdf ... 2014年美国银行.pdf
  • YYYY美国银行1st.pdf ... 2014年美国银行1st.pdf
  • YYYY Bank of America 2nd.pdf ... 2014 Bank of America 2nd.pdf
  • YYYY-MM-DD收据.... 2014-01-13收据_1。
  • YYYY-MM-DD收据.... 2014-01-13收据_2。

如果文件名包含bofa或Bank of America,则将文件移动到bofa文件夹>子文件夹YYYY。如果它包含1st,那么在子文件夹中> 1。此外,如果文件名中包含1099或1098,则将文件复制到税收文件夹>子文件夹YYYY。

如果文件已存在,则将其添加到文件夹,但附加后缀。

==

我当前的代码适用于移动文件但不处理异常。

1)如何让代码在文件名后附加一个后缀(但在扩展名.pdf之前)从技术上来说可能不止一个,所以它必须搜索下一个整数?

2)是否可以使脚本不区分大小写?

3)创建移动/副本的日志?

#!/usr/bin/python
import os
import fnmatch
import shutil
source = 'C:/Users/user/Desktop/UNFILED/'
ii='1'
base = os.path.split(source)
for file in os.listdir(source):
#BOFA
    if fnmatch.fnmatch(file,'*bofa*pdf'):
    #Return True if path is an existing regular file.
    if not os.path.isfile('C:/Users/user/Desktop/STATEMENTS/BOFA/'):
       shutil.move(os.path.join(source, file),"C:/Users/user/Desktop/STATEMENTS/BOFA/")
    True
    new_name = file[:-4]+'_'+str(ii)+file[-4:]
    os.rename(source, new_name)
    shutil.move(os.path.join(new_name, file),"C:/Users/user/Desktop/STATEMENTS/BOFA/")

如果我能提供任何澄清,请告诉我?

0 个答案:

没有答案