如何将文件列表从字典移动到目录?
Posted
技术标签:
【中文标题】如何将文件列表从字典移动到目录?【英文标题】:How can I move a list of files from a dictionary to a directory? 【发布时间】:2022-01-17 04:00:38 【问题描述】:第一次在这里提问,如果我做的不对,请随时告诉我。
我实际上是在尝试将 txt 文件从字典(值)附加到具有 os 和路径的特定目录。我试过这个,但我得到一个类型错误。 TypeError: join() argument must be str, bytes, or os.PathLike object, not 'list'
下面是我的代码。我期待您的回复:)
import os
ROOT = os.getcwd()
DATA_ROOT = os.path.join(ROOT, "src/data/initial")
def classify(arg: dict):
for key, value in arg.items():
folder = os.path.join(DATA_ROOT, key)
file = os.path.join(folder, value)
os.rename(DATA_ROOT, file)
return
# Dictionary with files that I am trying to move/create in the path
# .....src/data/initial/personal and .....src/data/initial/work
categories =
"personal": ["todos.txt", "bookmarks.txt"],
"work": ["customers.csv", "jobs.csv"]
print(classify(categories))
【问题讨论】:
file = os.path.join(folder, value) # value 是类别的值,所以它是一个列表——这不是 os.path.join 所期望的 【参考方案1】:只需遍历value
(因为这些是列表),然后按您的意愿继续:
def classify(arg: dict):
for key, value in arg.items():
for f in value:
file = os.path.join(DATA_ROOT, key, f)
# Do stuff
return
PS:您可能需要考虑使用 shutil
内置库进行文件/文件夹操作(例如 shutil.move
)。
【讨论】:
谢谢,我去看看。这是学习操作系统和路径的练习的一部分。由于某种原因,它仍然无法正常工作。我也试过 os.replace(..., ...) 。一旦我找到有效的解决方案就会更新folder = os.path.join(DATA_ROOT, key)
应该在外循环,而不是内循环。
@wwii 是的。选择了更简单的东西。以上是关于如何将文件列表从字典移动到目录?的主要内容,如果未能解决你的问题,请参考以下文章