用于将不同文件循环到同一行列表中

时间:2019-08-20 19:22:21

标签: python-3.x

问题在于“ for”循环中的文件显示在不同的行中。我不知道将要包含多少个文件,所以我想按文件比例扩展列表。

我尝试将(“'” +文件+“',”)添加到单个变量,并将该变量附加到列表中

import os 

opc = ""
os.chdir(r"C:\Users\Administrator\Documents\testpy")

for f in os.listdir():
    filename, file_ext = os.path.splitext(f)
    if file_ext == "":
        continue
    filec, fileI = filename.split(".")
    listd = list(())
    opc += "'" + filec + "',"
    listd.append(opc)
print (listd)

运行代码时,我得到了:

["'JumpingAroundDogs','Never-Tell-flying','PicturesInHouse_SS90','River-Tall-Running','Run-Run-Run-Down','winnern',"]

但我真正想要的是:

['JumpingAroundDogs','Never-Tell-flying','PicturesInHouse_SS90','River-Tall-Running','Run-Run-Run-Down','winnern']

有人知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

在循环之前声明您的列表,将名称直接添加到列表中。您似乎在'.'处拆分了该名称-这可能很奇怪,因为您仅分解为2个元素。像

这样的文件名
some.filename.with.extension.txt 

将分解为2个以上的元素,并引发错误。

import os 

opc = ""
os.chdir(r"C:\Users\Administrator\Documents\testpy")

listd = []
for f in os.listdir():
    filename, file_ext = os.path.splitext(f)
    if file_ext == "":
        continue
    filec, _ = filename.split(".",2)  # only care about the 1st split
    listd.append(filec)
print (listd)