各位高手
以下是我的作業,不知道哪裡有問題,導致結果跑不出來?謝謝大家
請問以下是我練習的作業題目,不知道為何跑不出來結果?
##7.作業7, 請以附上之 sample folder 內容為基礎,先以 print 的方式印出資料夾內之檔案,再篩選並留下檔名中不含'k', 'm', 'n' 等關鍵字之檔案。
from os import walk
f = []
for (dirpath, dirnames, filenames) in walk('C:\Users\lan_w\samplefolder'):
f.extend(filenames)
break
print('all file name=')
print(f)
print('after filter--------------')
for fileName in f:
if fileName.find('k')>0 or fileName.find('n')>0 or fileName.find('m')>0:
print(fileName)
in walk(r'C:\Users\lan_w\samplefolder'):
\
在python是轉譯字 ''
前面加r
可以讓他輸出完整字串
前來支援
可是我跑出來的結果,和老師的結果不一樣。
老師題目是不含'k', 'm', 'n' 等關鍵字之檔案。
但我的結果如圖.....
不好意思再請教大家
C:\Users\lan_w\samplefolder
目錄裡有不含'k', 'm', 'n' 等關鍵字的檔案嗎
怎麼辦有很多耶~
from os import walk
# 指定要列出所有檔案的目錄
mypath = "C:\\Users\\lan_w\\samplefolder\\"
all=[]
f=[]
# 遞迴列出所有檔案的絕對路徑
for dirpath, dirnames, filenames in walk(mypath):
for i in filenames:
all.append(i)
if i.find('k')<0 and i.find('m')<0 and i.find('n')<0:
f.append(i)
print('all file name=')
print(all)
print('after filter--------------')
print(f)
大師:不行耶~
是不是我的資料夾放的位置不對?
C:\Users\lan_w.ipynb_checkpoints\sample folder
這是我放sample folder的位置。我依您的Code結果如下
試試
mypath = 'C:\\Users\\lan_w\\.ipynb_checkpoints\\sample folder'
或
mypath = r'C:\Users\lan_w\.ipynb_checkpoints\sample folder'
還有我不是大師...是低手
peggytmu這個跟剛剛的 error 不是一樣嗎
然後你原本的
for (dirPath, dirNames, fileNames) in walk(r'C:\Users\lan_w\sample folder'):
f.extend(fileNames)
break
print('all file name=')
print(f)
這樣應該就可以了
很想說作業自己做,不過有人回答了我就順便寫一下吧,樓主的程式碼看的蠻想吐血的。
import os
path = r"c:/......"
def not_contain_kmn(name):
return "k" not in name and "m" not in name and "n" not in name
files = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))]
print(files)
files_not_contain = [f for f in files if not_contain_kmn(f)]
print(files_not_contain)