Python os.chdir()不使用带有空格和特殊字符的路径

2024-10-03 21:34:25 发布

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

我正在尝试按顺序运行一些文件(scrape.pytag.pysave.pyselect.py),这些文件位于名为“cargen”的文件夹中。然而,当我试图让os.chdir(path)访问这个“cargen”文件夹时,我收到一条异常消息,因为在“cargen”文件夹的路径中有一个带有空格和特殊字符的目录

按顺序运行文件的代码如下所示:

import os
path = "C:/Users/Desktop/repl/Special Cháracters/cargen/"

os.chdir(path)

directory = 'C:/Users/Desktop/scrap/'

files = ['scrape', 'tag', 'save', 'select']

if __name__ == '__main__':
    if not os.path.isdir(directory):
        os.mkdir(directory)

    [os.system('python ' + path + f'{file}.py ' + directory) for file in files]

我收到的信息如下所示:

python: can't open file 'C:/Users/Desktop/repl/\Special': [Errno 2] No such file or directory

我尝试将文件移动到一个路径,该路径中没有任何特殊字符或空格,并且代码工作正常。谁能帮我一下吗?我应该如何定义“cargen”的路径才能访问这些文件

注意:我正在将Windows 10与Anaconda一起使用


Tags: 文件pathpy路径文件夹顺序ossave
2条回答

最后,问题不在于os.chdir()。这个问题与@user2357112提到的os.system()函数有关

由于path中的空格,os.system()命令给了我一些问题。因此,由于文件都位于同一个文件夹中,我刚刚删除了对path的引用,结果如下:

import os

path = os.getcwd()

os.chdir(path)

directory = 'C:/Users/Desktop/scrap/'

files = ['scrape', 'tag', 'save', 'select']

if __name__ == '__main__':
    if not os.path.isdir(directory):
        os.mkdir(directory)

    [os.system('python ' + f'{file}.py ' + directory) for file in files]

当windows读取命令时,它使用空格作为分隔符。e、 g:

my folder->command1: my, command2: folder

但是,您可以通过添加引号将它们连接起来。您可以将单独的命令连接在一个命令中

"my folder"->command1: my folder

我想你也会遇到类似的事情,试着这样宣布你的道路:

'"your path"'

相关问题 更多 >