读取文本文件并将文件移动到目录中

1 投票
2 回答
2280 浏览
提问于 2025-04-17 23:44

我有一个存放图片的文件夹。其中一些图片的名字需要写在一个文本文件里,比如 'pic1.jpg'。

我需要从这个文本文件中提取出文件名,然后在当前工作目录中找到对应的文件,把它移动到一个单独的文件夹里(在当前工作目录下)。

这是我目前写的代码,但我无法让shutil的操作正常工作。我哪里出错了呢?

当前目录是 C:\BE

我需要把文件(比如 1.jpg、2.jpg 等)从一个叫 "filelist.txt" 的文本文件中移动到 C:\BE\2014-03-25_02-49-11。

import os, datetime
import shutil

src = os.getcwd()
global mydir
def filecreation(content, filename):

    mydir = os.path.join(os.getcwd(), datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
    try:
        os.makedirs(mydir)

    except OSError, e:

        if e.errno != 17:
            raise # This was not a "directory exist" error..
    with open(os.path.join(mydir, filename), 'w') as d:
        d.writelines(content)

    #shutil.copyfile(src,mydir)

def main():

    filelist = "filelist.txt"
    with open(filelist) as f:
        content = f.read().splitlines()
        #content = shutil.copyfile(src, mydir)
        print content
    print "Here we are"
    #list=['1.jpg','2.jpg']
    filecreation(content,"filelist.txt")


    print "lets try another method"
    with open('filelist.txt','w+') as list_f:
        for filename in list_f:
            with open(filename) as f:
                content = f.read()
                #content = shutil.move(src,mydir)
                #content = shutil.copyfile(src,mydir)
                #for line in f  
                print "method 2 is working so far"





if __name__ == '__main__':

    main()

2 个回答

0

你已经走在正确的道路上了。我看到你已经尝试过使用 shutil 这个模块。

你可以试试这个功能 shutil.move

1

这就是最终有效的方法 -

from shutil import  copy
f = open(r'C:\Users\B\Desktop\BE Project\K\filelist.txt', 'r')
for i in f.readlines():
    print i
    copy(i.strip(),r"E:\Images")    

f.close()

撰写回答