python學習筆記(一)-文件操作

python的基本文件操作是包含在__buildin__模塊中的。

  I, 基本操作1, 打開fh=open('filename', 'r')

  fh是打開文件的handle,每一個被打開的文件都應該退出時關閉(除了handle沒有賦給變量的文件,如open('filename')。

  參數:r    只讀rU  忽略不同的換行符格式的只讀打開rb   以二進制格式只讀打開w  寫wb  以二進制寫打開

  2,讀寫# 讀取全部內容text=fh.read()

  # 讀取100個字節text=fh.read(100)

  # 按行讀取text=fh.readlines()

  # seek fh.seek(100)

  # 寫fh.write(text)

  3,關閉fh.close()

  因爲python支持錯誤處理,所以一般對文件的操作寫成下面的形式:fh=open('filename')

  try:for line in fh:precess line finally:fh.close()

  4, 對文件中的每一行進行處理# case 1 fh=open('filename')

  for line in fh:print(line)

  fh.close()

  # case 2 fh=open('filename')

  lines=fh.readline()

  for line in lines:print(line)

  fh.close()

  更進一步,對每一行的每一個word進行處理fh=open('filename')

  lines=fh.readline()

  for line in lines:for word in line:print(line)

  fh.close()

  5, 替換文件中的某個字符fin = open('filein', r)

  fout = open('fileout', w)

  for s in fin:fout.write(s.replace('oldstring', 'newstring')

  fout.close()

  fin.close()

  II, os.path介紹操作文件,免不了要對路徑,目錄名,文件名進行處理。python提供了path的模塊,幫助處理這類事務。可以在python中使用help(os.path)查看詳細幫助。

  1, 目錄遍歷os.walk()

  os.walk()函數返回一個三元組,依次爲父目錄名,目錄名,文件名,他們之間以逗號分割。假設當前目錄的目錄結構如下:。

  ├── fstab├── mybackup.py└── sampledir├── 1├── 2└── 3則os.walk('.')返回如下:('.', ['sampledir'], ['fstab', 'mybackup.py'])

  ('./sampledir', ['1', '2', '3'], [])

  ('./sampledir/1', [], [])

  ('./sampledir/2', [], [])

  ('./sampledir/3', [], [])

  2,路徑,目錄名,文件名處理# 將路徑名以最後一個/分割,返回一個二元組,如/etc/fstab被劃分爲/etc/, fstab os.path.split(path)

  # 將路徑名劃分爲盤符和其他,如'C:/windows'被劃分爲C和windows os.path.splitdrive(path)

  # 將路徑名劃分爲擴展名和其他,如d:/sample.txt被劃分爲d:/sample和txt. os.path.spltext(path)

  # 將兩個路徑連接,如'sdir'和'sfile'連接成'sdir/sfile' os.path.join(path1,path2)

  # 返回絕對路徑os.path.abspath(path)

  # 返回目錄名os.path.dirname(path)

  # 返回文件名os.path.basename(path)

  # 返回真實路徑,即通過link找到真實的文件路徑os.path.realpath(path)

  III, zipfile介紹python提供了直接對zip文件的讀寫。

  import zipfile z = zipfile.ZipFile("zipfile.zip", "r")

  for filename in z.namelist( ):print 'File:', filename,bytes = z.read(filename)

  print 'has', len(bytes), 'bytes'詳細信息請help(zipfile)

  IV, shutil介紹shutil是用於複製及打包文件/目錄的模塊。

  copyfile(src,dst)

  copytree(src, dst, symlinks=False, ignore=None)

  move(src,dst)

  make_archive()

  V,  stat介紹import os import stat filestat = os.stat('text.txt')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章