在python中基于文本文件中的名称创建文件夹

2024-04-25 08:58:11 发布

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

我正在尝试使用python脚本来读取一个包含名称列表的文本文件,并基于这些名称创建文件夹。例如,如果文本文件中有“john_doe”和“jane_doe”,脚本应该创建两个文件夹。一个叫“约翰·杜”,一个叫“简·杜”。在

当我运行我的脚本时,我得到错误窗口错误:[error 123]文件名、目录名或列标签语法不正确:“,打开文件”名称.txt'模式'r'位于0X00000000025E6300>;”

下面是我正在运行的脚本:

import os

with open('names.txt') as x:
    for line in x:
        line = line.strip()
        os.mkdir(str(x))

我认为这更像是一个Windows问题(因此出现了Windows错误),但我不确定如何解决它。有什么提示吗?在


Tags: txt脚本文件夹名称列表os文件名windows
3条回答

而不是:

        os.mkdir(str(x))

你的意思是:

^{pr2}$

您甚至不需要str(),因为line已经是str。(我怀疑您添加它只是因为os.mkdir(x)给了您一个错误。)

之前的代码试图创建几个目录,所有目录都命名为“<open file 'names.txt', mode 'r' at 0X00000000025E6300>”。在

名称之间的特殊字符和空格可能会出现问题。Windows不喜欢在多单词目录名之间转义空白。在

尝试(i)以Unicode格式读取行(以避免特殊字符问题),然后(ii)将名称与下划线连接起来,以避免出现空格问题:

import os

with open('names.txt', 'rU') as x:
    for line in x:
        line = line.strip().split()
        filename = "_".join([i for i in line])
        os.mkdir(filename)

通过以下方式检查当前工作目录:

>>> import os
>>> os.getcwd()

您可能会发现您的程序可能没有适当的权限来更改目录。在

试着换成别的东西,比如:

^{pr2}$

如果你发现程序可以在另一个目录上写/做更改,那么你可能需要更改程序的权限。在

相关问题 更多 >