所以我正在研究某些代码来修改文本文件。当我单独使用此功能时,它会完美运行
TextRotation.rotTextC("cv.txt")
但是当我批量使用它作为这样的列表
def files_LTXT(pathF):
return glob.glob(pathF + "*" + ".txt")
for i in range (len(listFileTXT)):
TextRotation.rotTextC(listFileTXT[i])
IT出现以下错误:
File "C:\Users\Administrator\PycharmProjects\openCV\TextRotation.py", line
9, in rotLineC
0
valueObj = int(lineStr[c1])
0.472917 0.713281 0.845833 0.376563
IndexError: string index out of range
函数rotLineC如下:
def rotLineC(lineStr, c1):
if len(lineStr) > 2:
valueObj = int(lineStr[c1])
print(valueObj)
valueXC = float(lineStr[(c1+2):(c1+10)])
valueYC = float(lineStr[(c1+11):(c1+19)])
valueW = float(lineStr[(c1+20):(c1+28)])
valueH = float(lineStr[(c1+29):(c1+37)])
# print(valueXC)
# print(valueYC)
# print(valueW)
# print(valueH)
nValueXC = round(1 - valueYC, 6)
nValueYC = round(valueXC, 6)
nValueW = round(valueH, 6)
nValueH = round(valueW, 6)
rotString = str(int(valueObj)) + " " + str(nValueXC) + " " + \
str(nValueYC) + " " + str(nValueW) + " " + str(nValueH)
print(str(nValueXC) + " " + str(nValueYC) + " " + str(nValueW) + " " + str(nValueH))
print(rotString)
return rotString
此功能正常工作!
for i in range (len(listFileJPG)):
ImageRotation.rotImage(listFileJPG[i])
答案 0 :(得分:0)
请记住将/
包含在路径的末尾! (我在这里假设是UNIX环境)
例如,如果路径为“ dev / my_pat”,则您的函数将失败。路径必须以/
结尾。您可以将其用于您的功能:
...
if pathF[-1] != '/':
return glob.glob(pathF + "/*.txt")
...
此外,请勿使用索引进行迭代,而应使用pythonic方式!
for file in listFileTXT(my_path):
TextRotation.rotTextC(file)