调用连接后,Python甚至不会打印测试字符串。但使用代码0执行
我正在编写一些Python代码来重命名一些文件。在这样做的过程中,我遇到了一个特殊的错误。当我尝试在加入后打印任何内容时,都不会打印任何内容。甚至不打印“测试” 这可能是什么原因造成的? 代码如下:调用连接后,Python甚至不会打印测试字符串。但使用代码0执行,python,python-2.7,beautifulsoup,pycharm,Python,Python 2.7,Beautifulsoup,Pycharm,我正在编写一些Python代码来重命名一些文件。在这样做的过程中,我遇到了一个特殊的错误。当我尝试在加入后打印任何内容时,都不会打印任何内容。甚至不打印“测试” 这可能是什么原因造成的? 代码如下: ... #finding all images in a .html for t in soup.find_all('img'): # Note: soup exists outside of with try
... #finding all images in a .html
for t in soup.find_all('img'): # Note: soup exists outside of with
try:
old_src = t['src'] # Access src attribute
image = os.path.split(old_src)[1] # Get file name
#print 'image => ' + image
relpath = os.path.relpath(root, do) # Get relative path from do to root
folders = relpath.strip('\\').split('\\') # Remove outer slashes, split on folder separator
#BELOW LINE CAUSES PROBLEM
new_src = '_'.join(folders.append(str(image))) # Join folders and image by underscore
print t['src'] #prints nothing
print 'test' #prints nothing
t['src'] = new_src # Modify src attribute
except: # Do nothing if tag does not have src attribute
pass
让我困惑的是,在这一行下面没有打印任何内容,因为它显然已经到达了执行的末尾……在这一行之后它不会做任何事情,尽管就我所见。执行完全停止
有人看到这里有什么问题吗
谢谢。文件夹。append(str(image))
不返回任何内容(None
),因此程序将引发异常并跳过您的打印
语句
您只需将new_src='''.'.join(folders.append(str(image)))
替换为以下两行即可解决此问题:
folders.append(str(image))
new_src = '_'.join(folders)
如果您通过捕获异常,但异常为e:
和打印e
,您将看到TypeError错误消息,因为这与执行''.join(None)
相同,通过执行'.join(folders.append(str(image))
folders.append(str(image))
不返回任何内容(None
),因此,程序将引发异常并跳过您的print
语句
您只需将new_src='''.'.join(folders.append(str(image)))
替换为以下两行即可解决此问题:
folders.append(str(image))
new_src = '_'.join(folders)
如果您通过捕获异常,但异常为e:
和打印e
,您将看到TypeError错误消息,因为这与执行''.join(None)
相同,通过执行'.join(folders.append(str(image))
folders.append(str(image))
不返回任何内容(None
),因此,程序将引发异常并跳过您的print
语句
您只需将new_src='''.'.join(folders.append(str(image)))
替换为以下两行即可解决此问题:
folders.append(str(image))
new_src = '_'.join(folders)
如果您通过捕获异常,但异常为e:
和打印e
,您将看到TypeError错误消息,因为这与执行''.join(None)
相同,通过执行'.join(folders.append(str(image))
folders.append(str(image))
不返回任何内容(None
),因此,程序将引发异常并跳过您的print
语句
您只需将new_src='''.'.join(folders.append(str(image)))
替换为以下两行即可解决此问题:
folders.append(str(image))
new_src = '_'.join(folders)
如果您通过捕获异常,但异常为e:
和打印e
,您将看到TypeError错误消息,因为这与执行'.join(None)
相同,通过执行'.join(folders.append(str(image))
假设文件夹
是正常的列表
,folders.append
返回None
,但是str.join
需要一个iterable作为其参数,因此它会引发TypeError
。。。然后被您的捕获并忽略,除了:pass
,然后继续执行汤中的下一个t。find_all('img')
,因此永远不会到达打印。假设文件夹是一个正常的列表,文件夹。append
返回无,但是str.join
需要一个iterable作为其参数,因此它会引发TypeError
。。。然后被您的捕获并忽略,除了:pass
,然后继续执行汤中的下一个t。find_all('img')
,因此永远不会到达打印。假设文件夹是一个正常的列表,文件夹。append
返回无,但是str.join
需要一个iterable作为其参数,因此它会引发TypeError
。。。然后被您的捕获并忽略,除了:pass
,然后继续执行汤中的下一个t。find_all('img')
,因此永远不会到达打印。假设文件夹是一个正常的列表,文件夹。append
返回无,但是str.join
需要一个iterable作为其参数,因此它会引发TypeError
。。。然后被你的捕获并忽略,除了:pass
,然后继续执行汤中的下一个t。find_all('img')
,这样就永远不会到达打印的。是什么让你认为连接行一开始就已经到达了?如果将打印
放在连接
之前,会显示吗?@jwodder会显示,尝试在连接正常工作之前打印任何和所有值(包括所有变量)。直到后来才有了问题。我已经测试了很多:)的另一个例子。是什么让你认为join
行一开始就已经到达了?如果将打印
放在连接
之前,会显示吗?@jwodder会显示,尝试在连接正常工作之前打印任何和所有值(包括所有变量)。直到后来才有了问题。我已经测试了很多:)的另一个例子。是什么让你认为join
行一开始就已经到达了?如果将打印
放在连接
之前,会显示吗?@jwodder会显示,尝试在连接正常工作之前打印任何和所有值(包括所有变量)。直到后来才有了问题。我已经测试了很多:)的另一个例子。是什么让你认为join
行一开始就已经到达了?如果将打印
放在连接
之前,会显示吗?@jwodder会显示,尝试在连接正常工作之前打印任何和所有值(包括所有变量)。直到后来才有了问题。我已经做了很多测试: