我想削减连贯字符是超过88个字符长。我需要在reportlab表单元格中换行,因此我需要额外的空白。问题是输入可以是任何东西,如果换行是有用的,那就太好了。你知道吗
我的代码是:
CONST = 88
def main():
text = '''This is just a test to test the splitting of longer a path C\:TestResults\TestCase12345\SuiteOfTestCase2\LoggingAnything\LoggingTheLogger\PDFLoggerFiles\Example.pdf'''
if len(text) > CONST:
splitList = text.split(' ')
for item in splitList:
if len(item)>CONST:
print searchChar(item)
def searchChar(toSplitString):
chars = ['\\', '_']#...and catch other chars
for char in chars:
if toSplitString.find(char) != -1:
splittedParts = toSplitString.split(char)
for slicedParts in splittedParts:
if len(splittedParts)>CONST:
break
return buildNewString(splittedParts, char)
print 'hard line breaking'
def buildNewString(stringParts, character):
dummy = 0
partOfTheNewString =''
newStringList = []
while dummy != len(stringParts):
partOfTheNewString += (stringParts[dummy] + character)
dummy = dummy +1
if len(partOfTheNewString) > CONST:
dummy = dummy -1
sliceIndex = len(partOfTheNewString)-(len(stringParts[dummy])+len(character))
partOfTheNewString = partOfTheNewString[:sliceIndex]
partOfTheNewString += (' ')
newStringList.append(partOfTheNewString)
partOfTheNewString = ''
if len(partOfTheNewString):
index = len(partOfTheNewString) - len(character)
newStringList.append(partOfTheNewString[:index])
back = ''.join(newStringList)
return back
if __name__ == '__main__':
main()
这个太长了,分支太多了。 你有什么主意吗?你知道吗
Python将自动连接紧挨着“的字符串(请参见the docs,并注意
r
aw字符串以保留反斜杠*):或者,如果您实际使用的是多行字符串,请参见Avoiding Python multiline string indentation。你知道吗
*但它们仍然不能有一个反斜杠作为最后一个字符,请参见Why can't Python's raw string literals end with a single backslash?
相关问题 更多 >
编程相关推荐