繁体   English   中英

python中压缩文件夹的完整文件路径

[英]full file path for zipped folder in python

我有以下代码试图获取完整的文件路径(包括文件夹):

import zipfile
import os
import sys

zipped_files_dir = 'Z:\Dev\some_files'

def get_folder_names():
    path_list = []
    for folder_name in os.listdir(zipped_files_dir):
        path_list.append(folder_name)
    return path_list

def get_folder_directories(folder_list):
    for folder in folder_list:
        pathname = os.path.abspath(folder)
        print(pathname)

def main():
    get_folder_directories(get_folder_names())

>>>Z:\Dev\new_folder.zip  

我的问题是我应该在返回的目录中有“\\ some_files \\ new_folder.zip”。 有任何想法吗?

谢谢!

您可以在get_folder_directories函数中使用os.path.join(zipped_files_dir, folder)

import zipfile
import os
import sys

zipped_files_dir = 'Z:\Dev\some_files'

def get_folder_names():
    path_list = []
    for folder_name in os.listdir(zipped_files_dir):
        path_list.append(folder_name)
    return path_list

def get_folder_directories(folder_list):
    for folder in folder_list:
        pathname = os.path.abspath(os.path.join(zipped_files_dir, folder))
        print(pathname)

def main():
    get_folder_directories(get_folder_names())

或者,在get_folder_names()get_folder_names() path_list.append(os.path.join(zipped_files_dir, folder_name)) get_folder_names()

import zipfile
import os
import sys

zipped_files_dir = 'Z:\Dev\some_files'

def get_folder_names():
    path_list = []
    for folder_name in os.listdir(zipped_files_dir):
        path_list.append(os.path.join(zipped_files_dir, folder_name))
    return path_list

def get_folder_directories(folder_list):
    for folder in folder_list:
        pathname = os.path.abspath(folder)
        print(pathname)

def main():
    get_folder_directories(get_folder_names())

Chown有正确的解决方案。

在你的代码中,你传递abs_path字符串“new_folder.zip”。 但是abs_path不知道它来自哪里,因此它确定它必须在当前工作目录中,这就是为什么您得到r“ Z:\\ Dev \\ new_folder.zip”的原因。 您需要使用os.path.join将文件名与您在其中找到的路径组合在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM