1. 程式人生 > 程式設計 >python os.path.isfile()因引數問題判斷錯誤的解決

python os.path.isfile()因引數問題判斷錯誤的解決

目的: 找出路徑坐在的所有python檔案(.py結尾),返回列表。

程式碼:

def list_py(path = None):
 if path == None:
  path = os.getcwd()
 return [fname for fname in os.listdir(path)
 if os.path.isfile(fname) and fname.endswith('.py')

錯誤:

不傳入引數沒有問題

>>> list_py()
['cmdtest.py','datatest.py','excel_combine.py','input.py','iotest.py','load_data_test.py','numpy_arraytest.py','ooptest.py','pandas_test.py','str_test.py','test.py','wordstats.py']

但是傳入引數後

>>> list_py('D:\Python\PythonProject\data_mining_with_python')
[]

返回:[]

一度以為將路徑作為引數會出問題,但是在刪除列表中if條件後又正常返回。所以顯而易見。

解決:

os.path.isfile()

接收的引數是路徑+檔名,所以不單單是fname或者path。

而應該用:

os.path.join(path,fname)

作為引數

以上這篇python os.path.isfile()因引數問題判斷錯誤的解決就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。