【发布时间】:2016-11-25 16:11:05
【问题描述】:
我正在尝试将 59 添加到我文件夹中所有文件的特定位置的 3 位数字中,但它给出了这个错误:
ValueError: int() 以 10 为底的无效文字:''
我检查了打印,确实是一个 3 字符的字符串,只包含数字(从外观上看)
代码:
import os
def left(s, amount):
return s[:amount]
def right(s, amount):
return s[-amount:]
def mid(s, offset, amount):
return s[offset:offset+amount]
for filename in os.listdir("V:\HD_RASTER\CTA2-GUA3"):
s = mid(filename, 21, 3)
print("Chars : " + len(s) + " String : " + s)
s = int(s) + 59
s = string(s)
os.rename(filename,left(filename,21) + s + mid(filename,24,len(filename))
文件名文件夹截图:
【问题讨论】:
-
s = string(s)打算做什么? -
您的代码适用于我(手动输入文件名进行测试)。如果 int(s) 无效,它会给你你得到的错误......它可能适用于大多数文件,但也许其中有一个长度不同的文件?以及说了什么(或问了什么)。
-
@kindall 把它变回字符串?我猜是不必要的,但这不是错误
-
@Fhaab 我打印了每个“s”的长度和值,它是一个 3 len 数字
-
你可以使用try/except来捕捉和打印看看哪个部分出错了。
标签: python python-2.7 operating-system