对当前目录中的文件进行操作,并将它们放入新目录



我当前在一个工作目录中,其中存在以下文件

abcde_file
gvmdgv_file
qst_file
rl.txt
qp.txt
trs_file

我想对所有末尾有_file的文件进行一些操作,并将它们放入一个名为newdir的新目录中。

我的尝试:

from glob import glob
files = glob("*_file")
with open('newdir/{}'.format(files),'a') as a:
with open(files,'r') as r:
#required operations

它给出了一个错误,说with open('newdir/{}'.format(files),'a')的文件名太长

这是因为变量files是一个列表,包含所有以_file为后缀的匹配文件。您应该循环遍历列表中的每一个元素,然后复制它。像这样的东西应该起作用:

from glob import glob
files = glob("*_file")
for file in files:
oldf = open(file,'r')
newf = open(newdir+"\"+file,'w+')
data = oldf.read()
newf.write(data)
oldf.close()
newf.close()

如果要复制不同于文本文件的文件,则可能需要使用rbwb+打开这两个文件句柄。例如,变量newdir可以是具有新目录路径的常量。

您可能想要了解python的原生"高级文件操作";图书馆关闭

import shutil
shutil.copy("filepath to copy", "path-to-destination-folder")

最新更新