If there were no spaces in the path:
print(sample[:sample.find(".csv")+4].rsplit(None, 1)[1])
2010_USACE_VA_minmax.csv
The output also looks like it comes from a unix command so might be an idea to use a linux tool to parse it, if it is a unix command the format is most probably consistent so you can split the lines to get the filenames:
sample = "1001 15707 May 08 23:01 2010_USACE_VA_metadata.xml\r\n-rw-rw-r-- 1 311 1001 1784 May 08 23:01 2010_USACE_VA_minmax.csv\r\ndrwxrwxr-x 2 311 2013"
for line in sample.splitlines():
f = line.rsplit(None, 1)[1]
print(f)
2010_USACE_VA_metadata.xml
2010_USACE_VA_minmax.csv
2013
I presume 2013 comes from you having truncated some of the output.
If you are using subprocess to run the command and you didn't need any of the other data, ls can take a wildcard:
from subprocess import check_output
f = check_output(["ls","*.csv"])
Or to get the permissions etc.. as per you own command:
data = check_output(["ls","-l","*.csv"])
That will give you just the .csv files and their permissions so you just need to iterate over the output again with splitlines and every file at the end will be a csv file.