def getMSTestPath(testPath):
dllFilePath = r'C:\Users\bgbesase\Documents\Brent\Code\Visual Studio'
msTestFilePath = []
dllConvert = []
full_dllPath = []
for r, d, f in os.walk(testPath):
for files in f:
if files.endswith('.UnitTests.vbproj'):
#testPath = os.path.abspath(files)
testPath = files.strip('.vbproj')
msTestFilePath.append(testPath)
#print testPath
#print msTestFilePath
for lines in msTestFilePath:
ss = lines.replace(r'.', r'-')
#print ss
dllConvert.append(ss)
for lines in testPath:
dllFilePath = dllFilePath + '' + lines + '\bin\Debug' + '.dll' + '\n'
full_dllPath.append(dllFilePath)
print full_dllPath
msTestFilePath = [str(value[1]) for value in msTestFilePath]
return msTestFilePath
testPath = [blah.APDS.UnitTests
blah.DatabaseAPI.UnitTests
blah.DataManagement.UnitTests
blah.FormControls.UnitTests ]
ss = [ blah-APDS-UnitTests
blah-DatabaseAPI-UnitTests
blah-DataManagement-UnitTests
blah-FormControls-UnitTests ]
我需要遍历路径并首先:获取以.UnitTests
结尾的所有文件,并将其作为列表testPath
返回。然后,我必须将所有.
转换为-
并将该列表作为ss返回。
这就是我被困住的地方,我需要经历一个循环,因为testPath
中有许多元组我需要添加`dllFilePath + testPath +'\ bin \ Debug \'+ ss +'的.dll'
然而,我无法让它工作,我不知道为什么,输出只是一些废话,:( 感谢您提前提供任何帮助。
答案 0 :(得分:3)
不要使用.strip()
;它将其参数视为字符的集,而不是特定的序列。
因此,您要删除集合{'.', 'v', 'b', 'p', 'r', 'o', 'j'}
中的所有字符,并且删除的内容远远超出您的预期:
>>> 'blah.APDS.UnitTests.vbproj'.strip('.vbproj')
'lah.APDS.UnitTests' # Note that 'b' was removed from the start
改为使用字符串切片:
testPath = files[:-len('.vbproj')]
或使用os.path.splitext()
:
testPath = os.path.splitext(files)[0]
演示:
>>> 'blah.APDS.UnitTests.vbproj'[:-len('.vbproj')]
'blah.APDS.UnitTests'
>>> import os.path
>>> os.path.splitext('blah.APDS.UnitTests.vbproj')[0]
'blah.APDS.UnitTests'