【问题标题】:for in converting str to list why?for in 将 str 转换为 list 为什么?
【发布时间】:2012-02-10 01:35:57
【问题描述】:

我目前正在构建一个脚本来查找图像序列并将它们组合在一起。我的问题是当我获取文件名并在它们上运行“for in”时,它们会变成列表......为什么?这是我的代码:

import os, glob

path = r'C:\Users\manley\Desktop\testSeq'

for my_file in glob.glob( os.path.join(path, '*.jpg') ):

    (dirName, fileName) = os.path.split(my_file)
    (fileBaseName, fExt) = os.path.splitext(fileName)
    #print fileName

    pathLists = fileName
    pathList1 = []
    pathList2 = []

    #print pathList
    #print fileName

    for fName in pathLists:
        print fName

文件名 = rightSide_020_30.0001.jpg

当打印 fName 时,我会得到每个字母的列表... 如何让 fName 将 fileName 保存为 str?

【问题讨论】:

  • 这段代码让我很困惑。为什么你需要在一个只有一个项目的列表上做内部for..in
  • 对不起,我忘了提到在我正在搜索的文件夹中有不同类型的文件序列..所以我需要将它们分开。这就是下一步的目标

标签: python list for-loop glob sequences


【解决方案1】:

你应该只这样做:

import os, glob

path = r'C:\Users\manley\Desktop\testSeq'

for my_file in glob.glob( os.path.join(path, '*.jpg') ):

    (dirName, fileName) = os.path.split(my_file)
    print fileName

不需要更多代码。

【讨论】:

  • 你说得对,我忘了说我试图区分不同的文件类型。那里不仅有jpg。所以第二部分开始这样做了..但感谢您抽出时间帮助我:)
【解决方案2】:

你的代码对我来说有点不清楚,但在你的情况下,每封信都会被打印出来,因为你这样做

>>> mylist = "abc"
>>> for m in mylist:
...    print m
...
a
b
c
>>>

您的pathlist 是一个字符串。

我认为你的本意是:

pathList1 = []
pathList1.append(filename)

for fname in pathList1:
          print fname

【讨论】:

  • 啊,你的权利。这就是我想做的。非常感谢! :)
【解决方案3】:

pathLists = fileName 这是一个字符串...代表一个文件名...当您for 处理一个字符串时,它会产生每个字符...

【讨论】:

    猜你喜欢
    • 2023-01-19
    • 1970-01-01
    • 2017-01-05
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 2020-04-26
    • 2014-06-10
    相关资源
    最近更新 更多