gpt4 book ai didi

Python 文件路径

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:30 26 4
gpt4 key购买 nike

我正在尝试构建一个简单的脚本,它必须能够在目录、子目录和子目录之间导航,而我以前从未这样做过。

为什么这段代码会生成它所做的输出——带有双反斜杠?另外,根据我的目标,我的代码应该做什么?

我相信我的目标是保持单个反斜杠,但我不确定。我所知道的是,我将在同一目录的不同级别之间跳动——进入子目录和子目录。尝试进一步处理该程序时,我相信我在尝试查找文件路径中包含双反斜杠的文件时遇到了错误。

import os, shutil, time

mdir = 'C:\\Users\Dev\Desktop\Python_Test'
dirlist = [(mdir + '\\' + i) for i in os.listdir(mdir) if os.path.isdir(os.path.join(mdir, i))]

print dirlist

输出:

['C:\\Users\\Dev\\Desktop\\Python_Test\\Dir 1',
'C:\\Users\\Dev\\Desktop\\Python_Test\\Dir 2']

最佳答案

这里有双反斜杠,因为您在列表上调用 print,它会打印列表元素的 repr:

>>> l = ['C:\\Users\\Dev\\Desktop\\Python_Test\\Dir 1',
... 'C:\\Users\\Dev\\Desktop\\Python_Test\\Dir 2']
>>> for x in l:
... print(repr(x))
...
'C:\\Users\\Dev\\Desktop\\Python_Test\\Dir 1'
'C:\\Users\\Dev\\Desktop\\Python_Test\\Dir 2'

repr 还为您提供了字符串周围的引号。这个想法是 repr 的输出(对于像 str 这样的简单类型)可以直接反馈给 Python 解释器。要在不使用引号和使用单个反斜杠的情况下打印,请分别打印元素:

>>> for x in l:
... print(x)
...
C:\Users\Dev\Desktop\Python_Test\Dir 1
C:\Users\Dev\Desktop\Python_Test\Dir 2

与外界交流时使用这种形式。

顺便说一句,要遍历目录层次结构,请使用 os.walk并构建路径,使用os.path.join .

关于Python 文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com