国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python批量修改文件夾及其子文件夾下的文件內容

2020-01-04 13:37:06
字體:
來源:轉載
供稿:網友

前言:前幾天我看一位同學要修改很多文件中的數據,該文件數據很規律,一行只有三個數,需要將每行最后一個數字改為負數,但文件有上千個,分布在每個文件夾下面以及它的多級子文件夾下,看他用excel手動改數據改的很痛苦,我突然想到用Python訪問和操作文件,修改文件內容都很方便,于是在對Python不熟悉的情況下花了大半天寫了下面的程序。

大概思路:先獲取文件夾下所有文件名存在列表中,然后循環遍歷訪問文件內容,修改后寫入新文件,考慮到還有子文件夾,這里用了遞歸的方法訪問子文件夾的文件,最后修改完再把原文件刪除,將新文件修改為原文件名,具體程序功能見代碼注釋。

完整代碼:

#coding=utf-8#可加入中文注釋#函數功能:將指定文件夾下所有文件和子文件夾下的文件遍歷,并修改文件內容import osfpath ="/home/hyj/桌面/files_1"#這里是你的第一級文件夾的路徑def filechanger(path): filenames = os.listdir(path)#將path路徑下的所有文件名存入列表filenames  for filename in filenames:#循環遍歷每個文件 domain = os.path.abspath(path)#獲取規范的路徑 filename = os.path.join(domain,filename)#帶路徑的文件名 if os.path.isdir(filename): # 如果是文件夾進入遞歸  filechanger(filename)  continue fread = open(filename,'r') fwrite = open("%s.backup"%filename,'w') while True:#修改文件內容  line=fread.readline()#按行讀取內容  if len(line)>0:#當改行為空,表明已經讀取到文件末尾,退出循環  content = line.split()#因為每行有三個TAB符號分開的數字,將它們分開  print(content)  content[2] = '-'+content[2]  print(content)  newcont = content[0]+'/t'+content[1]+'/t'+content[2]+'/r'  fwrite.write(newcont)#修改后寫入新文件  else:  break fread.close() fwrite.close() os.remove(filename)#如果想更改數據后想保留原文件以及修改文件名可屏蔽這一句和下一句 os.rename("%s.backup" % filename, filename)#filechanger(fpath)

修改前

第1級文件夾及文件內容

python,批量修改,文件夾
python,批量修改,文件夾

第2級文件夾及文件內容

python,批量修改,文件夾
python,批量修改,文件夾

第3級文件夾及文件內容

python,批量修改,文件夾 
python,批量修改,文件夾

修改后文件內容

python,批量修改,文件夾

python,批量修改,文件夾 
python,批量修改,文件夾

如果想更改數據后想保留原文件以及修改文件名,可屏蔽代碼中的兩句話

python,批量修改,文件夾

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长丰县| 西青区| 东安县| 湛江市| 泸溪县| 新宁县| 灵寿县| 额济纳旗| 益阳市| 灌阳县| 宣恩县| 广河县| 米泉市| 绥江县| 安乡县| 宁晋县| 六枝特区| 阳春市| 高唐县| 铜川市| 城固县| 延庆县| 高陵县| 专栏| 洪湖市| 澳门| 元谋县| 安顺市| 内丘县| 长宁区| 拜泉县| 嘉兴市| 永新县| 泗水县| 黄浦区| 惠东县| 赫章县| 泾川县| 邯郸县| 喀喇沁旗| 普兰店市|