从.txt文件创建目录

时间:2018-06-19 11:51:42

标签: python python-2.7

我尝试在Python 2.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()

我的输入文件如下:

BaO_Fm-3m_26961_RPBE

BaZrO3_Pm-3m_90049_RPBE

BeO_P63mc_61181_RPBE

Bi2O3_P211c_15072_RPBE

CaMgSi2O6_C12c1_30522_RPBE

...

问题是我有很多文件夹,但所有文件夹都是从第一行开始逐个字母创建的,而不是像我预期的那样逐行创建的。

非常感谢您的帮助,并祝您生活愉快,

Ingo

4 个答案:

答案 0 :(得分:1)

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构造以使此异常安全。

答案 1 :(得分:1)

问题是您要遍历第一行而不是行列表,因此要为第一行中的每个字符创建文件夹。请改用readlines

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

答案 2 :(得分:1)

尝试使用 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))

答案 3 :(得分:0)

import os

path = '.'

lines = tuple(open('systems.txt', 'r'))
print lines
for system in lines:
    os.mkdir(os.path.join(path,(system)))
相关问题