簡體   English   中英

如何將聲明的變量存儲在數組中

[英]How to store declared variables in a array

我目前正在開發一個文件排序程序,現在我已經完成了文件夾的選擇,我需要為變量分配正確的路徑,以便以后使用它們來移動文件。 我的代碼現在看起來像這樣

import os
import  promptlib

sourcepath = str()
destpath = str()

pathimg = str()
pathtxt = str()
pathaudio = str()
pathvideo = str()
pathexe = str()
pathzips = str()

def get_paths():
    global sourcepath
    global destpath
    sourcepath = promptlib.Files().dir()+"\\"
    destpath = promptlib.Files().dir()+"\\"

def check_or_create_folder():
    get_paths()
    listToCreate = ["images\\","text documents\\","audio files\\","video files\\","executables\\","zips\\"]
    pathToCreate = destpath+"sortedDownloads\\"
    global paths
    try: os.mkdir(pathToCreate)
    except OSError: return
    for elememt in listToCreate:
        try: os.mkdir(pathToCreate+elememt)
        except OSError: break

我考慮過將它們存儲在一個數組中,然后逐個元素地聲明它們可能類似於

def check_or_create_folder():
    paths = [global pathimg, global pathtxt]  
    listToCreate = ["images\\","text documents\\","audio files\\","video files\\","executables\\","zips\\"]
    pathToCreate = destpath+"sortedDownloads\\"
    for i in range(len(listToCreate)):
        try: os.mkdir(pathToCreate+listToCreate[i])
            paths[i] = pathToCreate+listToCreate[i]
        except OSError: break

但這不起作用,我嘗試搜索它,但找不到任何東西,那么您對這個問題的處理方法是什么? 謝謝你之前的回答。 (對不起我的英語我還是 15 歲,它不是那么好)

不要使用全局變量。 不要使用字符串操作來組合路徑,而是使用pathlib.Path

要存儲您創建的文件夾,只需使用一個列表:

import promptlib
from pathlib import Path

SUB_FOLDERS = ["images", "text documents", "audio files", "video files", "executables", "zips"]

def get_paths():
    sourcepath = Path(promptlib.Files().dir())
    destpath = Path(promptlib.Files().dir())
    return sourcepath, destpath

def check_or_create_folder():
    sourcepath, destpath = get_paths()
    folders = []
    for folder in SUB_FOLDERS:
        folder = destpath / "sortedDownloads" / folder
        folder.mkdir(parents=True, exist_ok=True)
        folders.append(folder)
    return sourcepath, folders

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM