【问题标题】:full file path for zipped folder in pythonpython中压缩文件夹的完整文件路径
【发布时间】:2011-12-12 17:52:37
【问题描述】:

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

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”。有什么想法吗?

谢谢!

【问题讨论】:

    标签: python file path zip


    【解决方案1】:

    您可以在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())
    

    或者,path_list.append(os.path.join(zipped_files_dir, folder_name)) in 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())
    

    【讨论】:

    • 一定不同意,你应该在get_folder_name中做os.path.join。
    【解决方案2】:

    Chown 有正确的解决方案。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 2013-12-25
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多