我正在尝试用python编写一个列表,其中包含两个不同的文件夹(到一个文本文件);但是,当我运行程序时,只有我的第二个文件路径会追加到列表中,并显示在我的文本文件中。如何附加我的列表,以便同时显示两个文件夹中的文件?我认为我的代码将在第一步之后清空列表。我想将两个文件夹分开放置,不想仅出于列表目的将它们合并。
import os
from os import listdir
from os.path import isfile, join
root = r'C:\GEO\Images\data\data_2008\ims_data_2008'
mylist = [ ]
for path, subdirs, files in os.walk(root):
for name in files:
mylist.append(os.path.join(path, name))
roottwo = r'C:\GEO\Images\data\data_2009\ims_data_2009'
mylist = [ ]
for path, subdirs, files in os.walk(roottwo):
for name in files:
mylist.append(os.path.join(path, name))
txt = open(r'C:\GEO6973\FinalExam\YoungResults\ims_data_list.txt', 'w')
txt.write('dir' + ',' + 'file' + '\n')
for item in mylist:
list = mylist.pop(0)
dir, filename = os.path.basename(os.path.dirname(list)), os.path.basename(list)
txt.write(dir + ',' + filename + '\n')
with open(r'C:\GEO6973\FinalExam\YoungResults\ims_data_list.txt', 'r') as f:
read_data = f.read()
如您所说,您的代码将清空第一个文件夹之后的列表。您必须删除mylist = [ ]
后面的第二个roottwo
,否则到目前为止,您将丢失所有附加到列表的数据。
在最后一个循环中,如果您尝试遍历附加的路径以mylist
不使用它pop
来访问其内容。反而:
for item in mylist:
dir, filename = os.path.basename(os.path.dirname(item)), os.path.basename(item)
txt.write(dir + ',' + filename + '\n')
最后,请尝试避免将其list
用作变量名,因为它是python中的保留关键字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句