3 回答

TA貢獻1864條經驗 獲得超2個贊
我注意到上面的評論并想注意你不會用 print() 捕捉到 None 類型:
這樣做:
>a = None
>print(a)
將輸出None到控制臺。
我會遵循給出的嘗試捕捉錯誤的建議。你甚至可以做一個簡單的檢查。
代替:
f1 = open(filethub)
你可以這樣做:
if filethub:
f1 = open(filethub)
但是對整個底部部分進行嘗試捕獲可能會更好,并且它幾乎必須遍歷腳本的整個下部。您甚至可以記錄錯誤文件以供以后查看。

TA貢獻1806條經驗 獲得超5個贊
似乎錯誤在返回 NoneType 的 find 函數中,但我不知道為什么
通過在 find 函數中添加print(type(filethub))打開文件和打印語句之前找到。
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
heres your problem
<class 'NoneType'>
Traceback (most recent call last):
File "./line_diff.py", line 90, in <module>
main()
File "./line_diff.py", line 34, in main
f1 = open(filethub)
TypeError: expected str, bytes or os.PathLike object, not NoneType

TA貢獻1836條經驗 獲得超5個贊
錯誤消息告訴我們
open
使用參數調用None
。參數來自
filethub
,所以filethub
是None
。最后一次
filethub
分配是由find
函數分配的。所以,
find
函數返回None
。
你沒有包含這個find
功能,所以我不能說為什么。但是您可能需要檢查是否find
返回None
,如果是,則繼續下一次迭代。
添加回答
舉報