#python #file #path #zip
#python #файл #путь #zip
Вопрос:
У меня есть следующий код, который пытается получить полный путь к файлу (включая папку):
import zipfile
import os
import sys
zipped_files_dir = 'Z:Devsome_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:Devnew_folder.zip
Моя проблема в том, что я должен иметь «some_filesnew_folder.zip » в возвращенном каталоге. Есть идеи?
Спасибо!
Ответ №1:
Вы могли бы использовать os.path.join(zipped_files_dir, folder)
в get_folder_directories
функции:
import zipfile
import os
import sys
zipped_files_dir = 'Z:Devsome_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))
в get_folder_names()
:
import zipfile
import os
import sys
zipped_files_dir = 'Z:Devsome_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())
Комментарии:
1. Должен согласиться, вы должны сделать os.path.join в get_folder_name.
Ответ №2:
У Chown есть правильное решение.
В вашем коде вы передаете abs_path строку «new_folder.zip «. Но abs_path не знает, откуда он взялся, поэтому он считает, что он должен быть в текущем рабочем каталоге, поэтому вы получаете r «Z:Devnew_folder.zip «. Вам нужно использовать os.path.join, чтобы объединить имя файла с путем, по которому вы его найдете.