查找特定的字符串,复制和重命名

时间:2013-09-30 16:59:01

标签: python indexing

我是python的新手,我正在尝试编写一个脚本来将.jpgs从一个目的地复制到另一个目的地。该部分有效,但我试图排除某些包含某些以“big”,“iphone”和“wbig”结尾的字符串的缩略图。当我运行它时,我得到“切片索引必须是整数或无或具有索引方法”。我的另一个问题是,endswidth只接受三个参数......我可以用另一种方法来排除更多吗?

import os, shutil, re

def copy_files_over(src, dest):
src_files = os.listdir(src)
for file_name in src_files:
    full_file_name = os.path.join(src, file_name)   
    full_destination=os.path.join(dest,file_name)
    if (os.path.isfile(full_file_name) and  )and not file_name.endswith('big', 'iphone' 'wbig')):
        while os.path.exists(full_destination):
            full_destination += ".duplicate"
        shutil.copy(full_file_name, full_destination)

dest = 'C:/image_out'
src= 'C:/image_in'

copy_files_over(src, dest) # copy files

print "test complete";

接下来,我想重命名jpg一旦移动过来... I.E“My_Picture”将重命名为“My_Picture_Renamed”。我还没有开始使用该代码,但任何正确方向的手指都会有所帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以更改此位(无法正常工作)

file_name.endswith('big', 'iphone' 'wbig'))

到此,它将按您的要求运作

any(file_name.endswith(x) for x in ('big', 'iphone', 'wbig'))

以下评论:在单词的任何部分中查找字符串:

any(x in file_name for x in ('big', 'iphone', 'wbig'))