你们对我的上一个问题非常有帮助,所以我想我能不能再帮助我了。现在,我有一堆名为P2 _ ##的文件夹,每个文件夹包含两个文件夹0_output和1_output。在每个输出文件夹中,我有一个名为Bright_Combo.txt的文件。我想要做的是将两个输出文件夹中的数据复制到P2 _ ##文件夹中的Bright_Sum.txt文件中。这是我到目前为止所获得的代码,但问题是它只复制1_output文件夹中的数据,并在一种情况下将Bright_Sum文件的空副本保存到0_output文件夹中。
import os
import re
import shutil
def test():
file_paths = []
filenames = []
for root, dirs, files in os.walk("/Users/Bashe/Desktop/121210 p2"):
for file in files:
if re.match("Bright_Combo.txt",file):
file_paths.append(root)
filenames.append(file)
return file_paths, filenames
def test2(file_paths, filenames):
for file_path, filename in zip(file_paths, filenames):
moving(file_path, filename)
def moving(root,file):
bcombo = open(os.path.join(root,os.pardir, "Bright_Sum.txt"),'w')
shutil.copy(os.path.join(root,"Bright_Combo.txt"), os.path.join(root, os.pardir, "Bright_sum.txt"))
file_paths, filenames = test()
test2(file_paths, filenames)
感谢大家的帮助=)
答案 0 :(得分:0)
嗯,我不能给你完整的解决方案,但我可以给你一个想法...
这就是我为你的用例实现的:
<强>码强>
import os,re,shutil
f=[]
file='Bright_Combo.txt'
for root,dirs,files in os.walk('/home/ghantasa/test'):
if file in files:
f.append(os.path.join(root,file))
for fil in f:
with open(fil,'r') as readfile:
data = readfile.readlines()
with open(os.path.join('/'.join(fil.split('/')[:-2]),'Bright_Sum.txt'),'a') as writefile:
writefile.write(''.join(data))
这对我有用,我希望你能根据自己的需要进行调整。
希望这会有所帮助.. :)
答案 1 :(得分:0)
如果您只想将第二个文件附加到第一个文件,则可以直接使用bash
。我的代码假设P2_##
文件夹位于root
目录。
root="/Users/Bashe/Desktop/121210 p2/"
for folder in $(ls -1 "$root/P2_*"); do
cp "$folder/0_output/Bright Combo.txt" "$folder/Bright Sum.txt"
cat "$folder/1_output/Bright Combo.txt" >> "$folder/Bright Sum.txt"
done