我在目录中有一堆zip文件,每个zip文件包含几个CSV。我很好奇是否可以获取每个zip文件中的文件,然后将它们的绝对路径添加到列表中以便以后可以直接引用它们?
到目前为止我的内容如下:
# d is the directory with folders containing zip files
for dirpath, _, filenames in os.walk(d):
csv_list = []
# Works since zip files are files and not folders
for f in filenames:
fp = os.path.abspath(os.path.join(dirpath, f))
if zipfile.is_zipfile(fp):
# need to unzip and add contents
names_to_add = zipfile.ZipFile(fp).namelist()
paths_to_add = [os.path.join(fp, i) for i in names_to_add]
# how do I get absolute paths to the CSV's?
csv_list.extend(paths_to_add)
else:
# will be a csv file already
csv_list.append(fp)
# I want this to contain all absolute paths directly to CSV's
print csv_list
换句话说,我想将zip文件视为文件夹,以便我可以忽略它们并直接引用它们中的CSV。这可能吗?或者我是否需要先提取所有内容?如果是这样,我可以运行什么简单的脚本将所有文件提取到具有相同名称的文件夹中?感谢。
编辑:尝试打开csv_list
中的任何CSV文件时,我收到错误消息:
[Errno 2] No such file or directory: '\\\\file\\path\\to\\csv\\in\\zip'
据推测,这是因为您无法通过其绝对路径在zip文件中引用CSV。可能是由于另一个原因吗?