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

首頁 > 編程 > Python > 正文

Python使用os模塊和fileinput模塊來操作文件目錄

2020-01-04 17:50:25
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python編程中使用os模塊和fileinput模塊來操作文件的方法,包括獲取路徑和創建愛你刪除目錄等基本操作的例子,需要的朋友可以參考下
 

os模塊
在python編程中,我們會經常使用到文件和目錄,這些操作python提供一個os模塊,里面有很多操作文件和目錄的函數.

下面介紹os的常用功能

1.獲取當前路徑

>>> os.getcwd()'/root/python'

2.獲取目錄中的內容

>>> os.listdir(os.getcwd())['deco.py', '6.py', 'inputfile.py', 'uniFile.py', 'oddnogen.py', 'ospathex.py', 'operate.py', 'bianliang.py', 'typecheck1.py']

3.創建目錄

>>> os.mkdir('/root/pythontest')

   一次性創建嵌套目錄可使用os.makedirs,makedirs可以生成多層遞歸目錄,removedirs可以刪除多層遞歸的空目錄,若目錄中有文件則無法刪除;os.system():運行shell命令;

>>> os.environ['HOME']'/root'>>> os.makedirs(os.path.join(os.environ['HOME'],'test','py'))>>> os.system('ls -lR /root/test')/root/test:total 4drwxr-xr-x 2 root root 4096 2013-03-29 17:27 py /root/test/py:total 00

4.改變工作目錄

>>> os.getcwd()'/root/python'>>> os.chdir('/etc')>>> os.getcwd()'/etc'

5.刪除目錄

>>> os.rmdir('/root/pythontest')>>>

注:刪除目錄必須是空目錄

6.刪除文件

>>> os.remove('/root/pytest.py')

7.重命名文件或者目錄

>>> os.rename('/root/pytest.py','/root/test.py')

8.字符串給出當前平臺使用的終止符,例如:Windows使用'/r/n',Linux使用'/n'

>>> os.linesep'/n'

以下是os.path模塊

9.判斷是否是目錄

>>> os.path.isdir('/root/python')True

10.判斷是否為文件

>>> os.path.isfile('/root/python')False

11.返回一個路徑的目錄名和文件名

>>> os.path.split(os.getcwd())('/root', 'python')

12.判斷是否存在文件或目錄name

>>> os.path.exists('/root')True>>> os.path.exists('/root/1.py')False

13.獲得文件大小

>>> os.path.getsize('/root/python/if.py')282

14.返回文件路徑,返回文件名

>>> os.path.dirname('/root/python/if.py')'/root/python'>>> os.path.basename('/root/python/if.py')'if.py'

15.連接目錄與文件名或目錄

>>> os.path.join('/dave/test/','1.py')'/dave/test/1.py'

判斷一個目錄里哪些是文件哪些是目錄.

>>> for file in os.listdir('/root/python'):...   if os.path.isdir(file):...     print file,"is a directory"...   else:...     print file,"is a file"... deco.py is a fileinputfile.py is a fileoperate.py is a filehello.pyc is a fileuserpw.py is a file4.py is a fileanswer is a directory

fileinput模塊
fileinput模塊可以遍歷文本文件的所有行.它的工作方式和readlines很類似,不同點在于,它不是將全部的行讀到列表中而是創建了一個xreadlines對象.

下面是fileinput模塊中的常用函數

  • input() #它會返回能夠用于for循環遍歷的對象.
  • filename() #返回當前文件的名稱
  • lineno() #返回當前(累計)的行數
  • filelineno() #返回當前文件的行數
  • isfirstline() #檢查當前行是否是文件的第一行
  • close() #關閉序列
>>> import fileinput>>> for eachline in fileinput.input("/root/datafile.txt"):...   print eachline... Dave python >>> for eachline in fileinput.input("/root/datafile.txt"):...   print fileinput.filename()... /root/datafile.txt/root/datafile.txt>>> for eachline in fileinput.input("/root/datafile.txt"):...   print fileinput.lineno(),eachline... 1 Dave 2 python >>> for eachline in fileinput.input("/root/datafile.txt"):...   if fileinput.isfirstline():...     print eachline...   else:...     break... Dave

下面是一個關于日志分析的小實例,將日志中截取匹配的電話號碼,如800-333-1212

root@10.1.1.45:~# cat telphone.log 027-987-121202187899682021-110-9632root@10.1.1.45:~# cat fileinputtest.py #!/usr/bin/python2.5 import fileinputimport sysimport re pattern = "/d{3}-/d{3}-/d{4}"filePath = "/root/telphone.log" for eachline in fileinput.input(filePath):  a = re.search(pattern,eachline)  if a:#    sys.stdout.write("============/n")#    sys.stdout.write(eachline)     print "============"     print 'line:',fileinput.lineno(),'filename:',fileinput.filename(),'length:',len(eachline.strip('/n')),eachlineroot@10.1.1.45:~# ./fileinputtest.py ============line: 1 filename: /root/telphone.log length: 12 027-987-1212 ============line: 3 filename: /root/telphone.log length: 12 021-110-9632

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清新县| 平湖市| 定襄县| 渝北区| 九寨沟县| 辽源市| 鱼台县| 花垣县| 宽甸| 泌阳县| 石楼县| 怀远县| 开江县| 达日县| 即墨市| 安吉县| 湾仔区| 永川市| 精河县| 乐亭县| 临洮县| 阳新县| 河北省| 萨迦县| 鄄城县| 墨竹工卡县| 肃宁县| 邵阳市| 加查县| 陇西县| 武清区| 疏附县| 临潭县| 济宁市| 当雄县| 平潭县| 德江县| 新竹县| 辽宁省| 临湘市| 保康县|