调用连接后,Python甚至不会打印测试字符串。但使用代码0执行

调用连接后,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

我正在编写一些Python代码来重命名一些文件。在这样做的过程中,我遇到了一个特殊的错误。当我尝试在加入后打印任何内容时,都不会打印任何内容。甚至不打印“测试”

这可能是什么原因造成的? 代码如下:

       ... #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会显示,尝试在连接正常工作之前打印任何和所有值(包括所有变量)。直到后来才有了问题。我已经做了很多测试: