最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2016年01月19日 14:44:36   作者:樂晨  
這篇文章主要介紹了Python編程中使用os模塊和fileinput模塊來操作文件的方法,包括獲取路徑和創(chuàng)建愛你刪除目錄等基本操作的例子,需要的朋友可以參考下

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

下面介紹os的常用功能

1.獲取當(dāng)前路徑

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

2.獲取目錄中的內(nèi)容

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

3.創(chuàng)建目錄

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

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

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

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.字符串給出當(dāng)前平臺使用的終止符,例如: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.返回一個(gè)路徑的目錄名和文件名

>>> 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'

判斷一個(gè)目錄里哪些是文件哪些是目錄.

>>> 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 file
inputfile.py is a file
operate.py is a file
hello.pyc is a file
userpw.py is a file
4.py is a file
answer is a directory

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

下面是fileinput模塊中的常用函數(shù)

  • input() #它會返回能夠用于for循環(huán)遍歷的對象.
  • filename() #返回當(dāng)前文件的名稱
  • lineno() #返回當(dāng)前(累計(jì))的行數(shù)
  • filelineno() #返回當(dāng)前文件的行數(shù)
  • isfirstline() #檢查當(dāng)前行是否是文件的第一行
  • close() #關(guān)閉序列
>>> 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

下面是一個(gè)關(guān)于日志分析的小實(shí)例,將日志中截取匹配的電話號碼,如800-333-1212

root@10.1.1.45:~# cat telphone.log 
027-987-1212
02187899682
021-110-9632
root@10.1.1.45:~# cat fileinputtest.py 
#!/usr/bin/python2.5
 
import fileinput
import sys
import 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')),eachline
root@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

相關(guān)文章

最新評論

昌邑市| 隆子县| 普兰店市| 广昌县| 凌源市| 黔南| 古田县| 同江市| 达孜县| 浦城县| 紫阳县| 灌云县| 读书| 梅河口市| 普兰县| 乐安县| 靖西县| 崇明县| 荣成市| 改则县| 南木林县| 奉贤区| 名山县| 泸水县| 虎林市| 平原县| 饶平县| 宜宾县| 梁平县| 隆昌县| 色达县| 湖南省| 桂平市| 沂水县| 阳信县| 日照市| 乾安县| 宁阳县| 新民市| 崇文区| 海原县|