我有一個從函數(shù)調(diào)用的路徑pathorganizer,如下所示。該功能pathorganizer如下所示,def pathorganizer(raw,output): for root,sub,file in os.walk(raw): for folders in sub: if folders.startswith("raw"): patient_id_raw = root.split(os.sep)[8] for outdir,outsub,outfile in os.walk(output): for folders in outsub: if folders.startswith("raw"): patient_id_output = outdir.split(os.sep)[8] #print(outdir) if folders.startswith("derived"): if patient_id_output == patient_id_raw: path = print(outdir + "/derived/") #path = str(path) return(path) pathorganizer(raw,outdir) /Users/xyz/temp/pro/data_repo/poc/MAY-M-13/PZT-MAY-2/events/derived/ type(pathorganizer(raw,outdir)) /Users/xyz/temp/pro/data_repo/poc/MAY-M-13/PZT-MAY-2/events/derived/ NoneType現(xiàn)在我需要將上述路徑(字符串)附加到另一個字符串。上面的字符串被檢測為 NoneType,而不是字符串。在這種情況下,我無法將它與另一個字符串連接起來。當(dāng)我嘗試連接時,它拋出以下錯誤,TypeError: can only concatenate str (not "NoneType") to str這是我嘗試過的,for sam in list: file = sam + '.doc' with open(file, 'w') as my_file: my_file.write("whatever: " + pathorganizer(raw,outdir) + sam + "\n")我想知道在這種情況下如何編寫或連接我的值。我的目標(biāo)是.doc寫成如下, whatever: /Users/xyz/temp/pro/data_repo/poc/MAY-M-13/PZT-MAY-2/events/derived/sam我也試過了str(pathorganizer(raw,outdir)),然后它返回doc該文件被寫為,whatever: Nonesam
1 回答

BIG陽
TA貢獻(xiàn)1859條經(jīng)驗 獲得超6個贊
如果語句失敗,您的pathorganizer函數(shù)可以返回。Noneif
在您的情況下,似乎由于print產(chǎn)生了輸出,因此if語句已經(jīng)找到了一些東西。
這里發(fā)生了什么:
path = print(outdir + "/derived/")
是print返回None然后:
return(path)正在返回那個None。
因此,無論哪種情況,您的函數(shù)都會返回None.
將函數(shù)的最后幾行更改為:
if folders.startswith("derived"):
if patient_id_output == patient_id_raw:
return outdir + "/derived/"
添加回答
舉報
0/150
提交
取消