如何在python中仅从字符串中获取一部分

如何在python中仅从字符串中获取一部分,python,python-3.x,Python,Python 3.x,我有一个包含以下字符串的列表: total 71708 -rw-rw-rw- 1 gpatwprd tmwdprd 221 Nov 19 12:36 20181116.Something name.6781773.CSV -rw-rw-rw- 1 gpatwprd tmwdprd 221 Nov 19 12:36 20171116.Something name.67885.CSV 我想摘录: 只有从20181116开始的文件名或任何其他数据,

我有一个包含以下字符串的列表:

total 71708
-rw-rw-rw- 1   gpatwprd        tmwdprd 221     Nov 19 12:36 20181116.Something name.6781773.CSV
-rw-rw-rw- 1   gpatwprd        tmwdprd 221     Nov 19 12:36 20171116.Something name.67885.CSV
我想摘录:

只有从20181116开始的文件名或任何其他数据,这是一个动态数字 仅包含.CSV和.XLSX的文件名 请注意,文件名的长度可以是可变的


在Python3中如何实现这一点?

以下代码将打印所有必需条目的列表,以及仅包含必需文件名称的列表。”“data.txt”是包含要使用的数据的文件。希望这有帮助

fileContent = open('data.txt','r');
readLinesfromContent = fileContent.readlines();

splitLinesforSpace = []
for line in readLinesfromContent:
    splitLinesforSpace.append(line.split())

requiredEntries = []
namesofRequiredFiles = []
for idx, x in enumerate(splitLinesforSpace):
    if len(x) == 10:
        if x[8].startswith('20181116'):
            if x[9].endswith('.CSV') or x[9].endswith('.XLSX'):
                requiredEntries.append(readLinesfromContent[idx])
                x[9] = x[9].split('.')
                #Following gives only names of files
                namesofRequiredFiles.append(x[9][0])

print(requiredEntries)
print(namesofRequiredFiles)

从开始还是以开始?是否提取20181116之后的任何日期?如果文件扩展名为.csv或.xlsx且名称确实以20181116开头,则仅提取整个文件名。只需在列表的每个元素上循环,然后拆分字符串并检查相应元素是否以所需字符串开头,下一个元素是否以csv或XLSXBTW结尾,通常认为解析ls的输出是不好的做法,因为它变化很大,但是如果您的脚本只在您自己的机器上运行,那么它是安全的。但是为什么不使用标准Python库函数来获取文件名呢?这要简单得多。是的,它似乎不是最优的。因此,我为何提出以下问题: