从列表创建文件夹和子文件夹,每个文件夹中有1个文件

问题描述

我有一个这样的数据框:

mgr1       mgr2      mgr3
abc        def       fed
asd        dij       
sdf

df确实包含空值

我正在尝试建立一个目录,其中唯一的mgr3值是顶级文件夹的名称,mgr2唯一的值是子文件夹,mgr1唯一值是第二个子文件夹中的文件夹,等等。然后在每个文件夹中仅添加一个txt文件。

我采取了一种将每一列变成具有唯一字符串的变量,然后尝试执行一些for循环以基于这些字符串创建文件夹的方法,但是我没有成功。

#someting like this
mgr1 = list(set(df.mgr1))
mgr1 = [x for x in mgr1 if str(x) != 'nan']
mgr1 = ''.join(mgr1)
# print(mgr1)

for i in mgr1:
    os.system ("mkdir "+i)
    for j in range (1):
            os.system ("touch "+str(i)+"/"+str(j)+".txt")

有什么想法吗?

尝试1:

import os
import sys
import pandas as pd
import itertools

df = pd.read_csv('sas-user-mappings-to-ceo.csv')

eight = df.loc[~df['mgr8'].isnull(),'mgr8'].tolist()
seven = df.loc[~df['mgr7'].isnull(),'mgr7'].tolist()
six = df.loc[~df['mgr6'].isnull(),'mgr6'].tolist()
five = df.loc[~df['mgr5'].isnull(),'mgr5'].tolist()
four = df.loc[~df['mgr4'].isnull(),'mgr4'].tolist()
three = df.loc[~df['mgr3'].isnull(),'mgr3'].tolist()
two = df.loc[~df['mgr2'].isnull(),'mgr2'].tolist()
one = df.loc[~df['mgr1'].isnull(),'mgr1'].tolist()
user_name = df.loc[~df['user_name'].isnull(),'user_name'].tolist()
# third = df.loc[~df['user_lid'].isnull(),'user_lid'].tolist()

paths = [list(x) for x in itertools.product(eight,seven,six,five,four,three,two,one,user_name)]

for pathToWrite in paths:
    pathToWrite = "\Users\max\Downloads\users_visual"
    toCreate = os.path.join("C:",pathToWrite)

    os.mkdir(toCreate)

error: SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \UXXXXXXXX escape

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)