導航:首頁 > 編程語言 > python遍歷文件

python遍歷文件

發布時間:2022-02-09 00:48:27

1. 如何用python實現目錄遍歷

1. 基本實現

[root@localhost ~]# cat dirfile.py

import os
path='/tmp'
for dirpath,dirnames,filenames in os.walk(path):
for file in filenames:
fullpath=os.path.join(dirpath,file)
print fullpath
執行結果如下:

[root@localhost ~]# python dirfile.py
/tmp/yum.log
/tmp/pulse-3QSA3BbwpQ49/pid
/tmp/pulse-3QSA3BbwpQ49/native
/tmp/.esd-0/socket

2. python:遍歷文件並搜索/讀取

os.walk()

3. 如何用python遍歷文件夾下的所有excel文件

import os
for i in os.listdir("."):
if os.path.splitext(i)[1] == ".xlsx":
print i

4. 求通過python實現,在指定目錄下遍歷所有文件,將以.txt為後綴的文件移動到另一指定目錄中

target_dir = 'home/' #假定要拷貝到home目錄
x = [ item for item in os.walk('.') ] #os.walk遞歸地遍歷所有子文件夾
#返回的是一個list,list中每一個元素由3個部分:(path, dirs, files)
for path, dirs, files in x:
for file in files:
if file.endswith('.txt'): #找到以txt結尾的,之
shutil.( path+os.sep+file , target_dir )

5. python 如何遍歷文件夾里所有的txt文件

PY不會,其它語言我會

6. 請教大神,python遍歷目錄,根據目錄下獲取的文件信息,到其他目錄查找,並記錄到列表

os包的listdir函數可以列出一個文件夾下的所有文件名,返回的是一個列表

importos
filenames=os.listdir('g:\')

可以通過os.path.isfile()函數判斷一個文件是否存在

os.path.isfile('g:meelo.txt')

7. python一般遍歷所有文件需要多久

在互聯網管理、金融、物流等領域,往往離不開數據處理、統計分析等輔助決策的操作。

傳統的商業分析(Business Analysis),定性佔比很大,以相對簡單的數據處理為輔助,人們使用的分析工具主要是Excel;然而,自Excel2007版起,最大支持的工作表大小為16,384 列 × 1,048,576 行,超出最大行列數單元格中的數據將會丟失。

在大數據背景的今天,面對千萬條以上動輒成百上千G的數據,單用excel難免顯得力不從心,越來越多的人將關注點轉向python。

易踩坑!Excel輸給Python

(1)數據量級太大,報表來不及保存,Excel崩潰無響應

比如,工作中經常需要對一個表進行刪除重復值處理,當工作表中格式過於復雜、數據量過於龐大時,Excel在計算時容易報錯崩潰。

而python在數據處理的量級和性能上明顯高於excel,對python來說,只需調用drop_plicates方法就可以輕松處理大批量數據,無需擔心軟體崩潰異常退出。

Python的處理方法如下:

調用方法:

DataFrame.drop_plicates(subset=None,keep='first', inplace=False)

————————————————

參數說明:

subset: column label or sequence of labels, optional

用來指定特定的列,默認所有列

keep :{『first』, 『last』, False}, default 『first』

刪除重復項並保留第一次出現的項

inplace: boolean, default False

選擇直接在原來數據上修改或是保留一個副本

—————————————————刪除重復行

(2)操作繁瑣,人工處理容易粗心犯錯

我們經常會遇到從一個Excel表格拷貝一些數據,粘貼到另一個Excel表格中去的情況;或者從多個表格中,合並含有重復列的舊表格為新表。

這些工作並不困難,卻需要耗費大量人工審核的時間,且容易出錯。

利用python,可以放心交給機器做運算,一行命令解決人工需點擊上百次的工作。

Python處理方法如下:

設置循環遍歷,匹配關鍵字,按照列名自動分割數據存儲至本地

pandas自動分列操作

(3)重復性工作,效率低下

在做圖表時,由於每個報表都需要做對應的圖表,人工重復性操作N個報表,效率低下。

但是運用Python,可以調用已經集成好的工具包,自動化收集和清理數據,保存和刷新報表,對數據進行可視化展示。

Python處理方法如下:

對多個圖表進行批量處理,並且輕松輸出可視化內容,相比excel要高效得多。

小白學Python,壓力大嗎?

聽起來Python是不是很高大上的樣子?但事實上,即便是小白也能駕馭這樣的「高大上」技能!

簡單易學,速度快,正是學習Python的優點之一。Python說明文檔極其簡單,它更專注於解決問題而不是研究計算機語言本身,所以小白也能輕松上手!

以Python使用openpyxl讀寫excel文件為例

8. 求教python怎麼遍歷指定文件

監控目錄 -- 分兩個部分: 1. 掃描目錄文件, 保持當前狀態數據; 2. 狀態數據的比較



importos
importfnmatch


defgetfileinfo(filename):
(mode,ino,dev,nlink,
uid,gid,size,atime,mtime,ctime)=os.stat(filename)
returndict(
modifytime=mtime,
createtime=ctime,
size=size,
)


classDirectoryMonitor(object):

def__init__(self,path,fnexp="*.*"):
self.path=path
self.fnexp=fnexp
self.files={}
self.scan()

defscan(self):
currentfiles={}
forpath,dirs,filesinos.walk(self.path):
forfinfnmatch.filter(files,self.fnexp):
fullname=os.path.join(path,f)
currentfiles[fullname]=getfileinfo(fullname)
lastfiles=self.files
self.files=currentfiles
returnself.check(lastfiles,currentfiles)

@staticmethod
defcheck(lastfiles,currfiles):
monitor={}
newer={}
forfinset(currfiles)-set(lastfiles):
newer[f]=currfiles[f]
ifnewer:
monitor["newer"]=newer
deleted={}
forfinset(lastfiles)-set(currfiles):
deleted[f]=lastfiles[f]
ifdeleted:
monitor["deleted"]=deleted
changed={}
forfinset(lastfiles)&set(currfiles):
iflastfiles[f]!=currfiles[f]:
changed[f]=currfiles[f]
ifchanged:
monitor["changed"]=changed
returnmonitor


deftester():
importtime
dm=DirectoryMonitor(r"/home/tim/data","*.txt")
time.sleep(20)
m=dm.scan()
ifm:
printm


if__name__=="__main__":
tester()

9. 如何利用Python遍歷文件夾

1. 基本實現

[root@localhost ~]# cat dirfile.py

import os
path='/tmp'for dirpath,dirnames,filenames in os.walk(path): for file in filenames:
fullpath=os.path.join(dirpath,file) print fullpath

執行結果如下:

[root@localhost ~]# python dirfile.py
/tmp/yum.log/tmp/pulse-3QSA3BbwpQ49/pid/tmp/pulse-3QSA3BbwpQ49/native/tmp/.esd-0/socket

2. 在上例的基礎上傳遞參數

import os,sys
path=sys.argv[1]for dirpath,dirnames,filenames in os.walk(path): for file in filenames:
fullpath=os.path.join(dirpath,file) print fullpath

執行方式為:[root@localhost ~]# python dirfile.py /tmp

在這里,sys.argv[1]是接受參數,也可以定義sys.argv[2]接受第二個參數

3. 如何用函數實現

PS:

1> def __init__():函數,也叫初始化函數。

self.path = path可以理解為初始化定義了1個變數。 在後面的def裡面調用的時候必須要使用self.path而不能使用path

2>__name__ == '__main__'

模塊是對象,並且所有的模塊都有一個內置屬性 __name__。一個模塊的 __name__ 的值取決於您如何應用模塊。如果 import 一個模塊,那麼模塊__name__ 的值通常為模塊文件名,不帶路徑或者文件擴展名。但是您也可以像一個標準的程序樣直接運行模塊,在這種情況下, __name__ 的值將是一個特別預設"__main__"。上述類中加上__name__ == '__main__'的判斷語句,可以直接在終端環境下執行python dirfile.py /tmp進行測試,不必非得在互動式環境下導入模塊進行測試。

10. Python中如何遍歷指定目錄下的所有文件

例如:在C:\TDDOWNLOAD目錄下有a.txt、b.txt兩個文件,另有\sub1子文件夾,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt兩個文件。

1. os.walk
os.walk()返回一個三元素的tuple:當前路徑、子文件夾名稱、文件列表。
>>> import os
>>> def fun( path ):
... for root, dirs, files in os.walk( path ):
... for fn in files:
... print root, fn
...
>>> fun( r'C:\TDDOWNLOAD' )
C:\TDDOWNLOAD a.txt
C:\TDDOWNLOAD b.txt
C:\TDDOWNLOAD\sub1 c.txt
C:\TDDOWNLOAD\sub1 d.txt
>>>

2. glob.glob
glob.glob()只接受一個參數,這個參數既代有路徑,又代有匹配模式,返回值為一個列表。注意,glob.glob()無法直接穿透子文件夾,需要自己處理:
>>> def fun( path ):
... for fn in glob.glob( path + os.sep + '*' ): # '*'代表匹配所有文件
... if os.path.isdir( fn ): # 如果結果為文件夾
... fun( fn ) # 遞歸
... else:
... print fn
...
>>> fun( r'C:\TDDOWNLOAD' )
C:\TDDOWNLOAD\a.txt
C:\TDDOWNLOAD\b.txt
C:\TDDOWNLOAD\sub1\c.txt
C:\TDDOWNLOAD\sub1\d.txt
>>>

'*'為匹配模式,代表匹配所有文件,只有這樣才能將子文件夾查出來,以便遞歸深入,探查下一層的文件。

閱讀全文

與python遍歷文件相關的資料

熱點內容
伺服器租用有什麼用 瀏覽:348
日本的程序員有多少人 瀏覽:255
rar批量壓縮助手 瀏覽:919
ntp伺服器怎麼配置 瀏覽:101
android按鈕樣式修改 瀏覽:144
win復制命令 瀏覽:61
封開縣命令 瀏覽:778
張家港金田路車管所能解壓 瀏覽:945
lce的伺服器什麼時候人最少 瀏覽:338
pdf檔如何編輯 瀏覽:890
我的世界灰燼骷髏大戰起源碼 瀏覽:900
xcb源碼下載 瀏覽:261
特殊命令 瀏覽:840
winrar命令行zip 瀏覽:632
linux文件是否存在命令 瀏覽:829
同花順積突指標公式源碼 瀏覽:767
自帶文件夾的手機軟體 瀏覽:394
車牌下什麼app 瀏覽:766
上海電腦編程八佰伴 瀏覽:380
吸煙程序員 瀏覽:507