从.txt fi创建目录

2024-10-03 02:38:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在Python2.7中编写一些东西,从一个.txt文件创建许多目录。到目前为止我得到了这个:

import os path = '.' system_name = open('systems.txt') system = system_name.readline() while system: print(system) for system in system: os.mkdir(os.path.join(path,(system))) system_name.close()

我的输入文件如下所示:

包Fm-3m\U 26961\U RPBE

巴兹罗3_Pm-3m_90049_RPBE

BeO\ U P63mc\ U 61181\ U RPBE公司

Bi2O3\u P211c\u 15072\u RPBE

CaMgSi2O6\U C12c1\U 30522\U RPBE公司

。。。你知道吗

问题是,我得到了许多文件夹,但它们都是从第一行开始逐字母创建的,而不是像我预期的那样逐行创建的。你知道吗

非常感谢你的帮助,祝你愉快

英戈


Tags: pathnameimport目录txtforreadlineos
3条回答

尝试使用with语句打开文件以提高安全性。此外,您还可以使用for循环对文件进行迭代,这将为您提供所有行。你知道吗

with open('systems.txt') as system_name:
    for line in system_name:
        print(line)
        line = line.strip() #to remove things like '\n'
        os.mkdir(os.path.join(path, line))

readline()读一行。然后使用for system in system遍历该行,从而依次得到每个字符。你知道吗

方便的是,Python中的文件已经可以逐行迭代:

system_name = open('systems.txt')
for system in system_name:
    os.mkdir(os.path.join(path, system))
system_name.close()

您还可以查看with构造以确保此异常的安全性。你知道吗

问题是,您是在第一行上迭代,而不是在行列表上迭代,因此您可以为第一行中的每个字符创建文件夹。改用readlines。你知道吗

with open('systems.txt') as f:
    lines = f.readlines()
    for file_name in lines:
        os.mkdir(os.path.join(path, file_name))

相关问题 更多 >