【问题标题】:Python: Need to add chosen filenames into an arrayPython:需要将选择的文件名添加到数组中
【发布时间】:2014-12-02 21:56:03
【问题描述】:

这个想法很简单:有一个包含 2 个或更多文件 *.txt 的目录。我的脚本应该查看目录并获取文件名,以便通过网络复制它们(如果它们存在)。 作为一个 Python 新手,我面临着迄今为止无法解决的问题。 我的代码:

files = os.listdir('c:\\Python34\\');
for f in files:
    if f.endswith(".txt"):
    print(f)

此示例返回 3 个文件:

LICENSE.txt
NEWS.txt
README.txt

现在我需要使用每个文件名来创建一个 SCP。问题是当我尝试获取第一个文件名时:

print(f[0])

我只收到列表中每个文件的前几个字母:

L
N
R

如何将文件名添加到数组中以便以后将它们用作数组元素?

【问题讨论】:

    标签: python arrays python-3.x


    【解决方案1】:

    您也可以尝试使用 EXTEND 方法。所以你说:

    x = []
    for f in files:
         if f endswith(".txt"):
               x.extend([f])
    

    所以它会将 f 所在的文件“添加”到列表的末尾。

    【讨论】:

      【解决方案2】:

      如果您想要匹配文件名的list,则不要使用os.listdir 和过滤,而是使用带有合适模式的glob.glob

      import glob
      files = glob.glob('C:\\python34\\*.txt')
      

      然后你就可以访问files[0]等...

      【讨论】:

        【解决方案3】:

        文件数组是files。在循环中,f 是单个文件名(字符串),因此f[x] 获取文件名的第 x 个字符。使用files[0] 而不是f[0]

        【讨论】:

        • 嗨,您建议的更改结果是:DLLs DLLs DLLs
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多