从.txt文件创建目录



我尝试在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

问题是我得到很多文件夹,但所有文件夹都是从第一行逐个字母创建的,而不是像我想要的那样逐行创建。

比你非常为善良的帮助和享受你的一天,

英戈

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))

尝试使用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))
import os
path = '.'
lines = tuple(open('systems.txt', 'r'))
print lines
for system in lines:
os.mkdir(os.path.join(path,(system)))

相关内容

  • 没有找到相关文章

最新更新