核心编程9 文件和文件的输入输出 (os模块)
1? python內建函數(shù)open和file
? ? 文件打開方便讀取:f = open('文件名','模式','緩沖模式')? ? ? ? ?#'r'讀取,'w'寫入(先清空后創(chuàng)建).'a'追加? ?
詳情文件模式: r 以讀方式打開 rU 或 Ua 以讀方式打開, 同時提供通用換行符支持 (PEP 278) w 以寫方式打開 (必要時清空) a 以追加模式打開 (從 EOF 開始, 必要時創(chuàng)建新文件) r+ 以讀寫模式打開 w+ 以讀寫模式打開 (參見 w ) a+ 以讀寫模式打開 (參見 a ) rb 以二進制讀模式打開 wb 以二進制寫模式打開 (參見 w ) ab 以二進制追加模式打開 (參見 a ) rb+ 以二進制讀寫模式打開 (參見 r+ ) wb+ 以二進制讀寫模式打開 (參見 w+ ) ab+ 以二進制讀寫模式打開 (參見 a+ )?
? ? 文件讀取:
? ? ? ? f.read()? ? ?#讀取所有文件內容到字符串,從開頭到結尾
? ? ? ? f.readline()? ? ? ? #讀取文件的一行作為字符串,一行一行地讀,比較費時間? ? ?遍歷:for i in range(10): \n? ? print f.readline()
? ? ? ? f.readlines()? ? ? ? ? #讀取所有行,輸出一個字符串的列表,比較占內存
? ? 文件輸出:
? ? ? ? f.write()? ? ?#把內容寫進文件中去
? ? ? ? f.writelines()? ? ?#接受一個字符串列表作為參數(shù),將他們寫入文件
?
#實例:把input的內容寫到t1.txt中 f = open('t1.txt','w') while True:aline = raw_input('enter a line,"."to quit:')if aline != '.':f.write(aline+'\n')else:
break
f.close()
?
2 os包相關操作
? ?當前路徑:?print os.getcwd(),'獲得當前路徑'
? ??文件夾和文件夾名稱:?print os.path.split('D:\pytharm\學習文件\py5.py')? ? #將文件的路徑和文件名分開,放到元組中
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?print os.path.join('D:\pytharm\學習文件','shiyan.txt'),? ? #把路徑和文件名組合起來'
? ? 路徑和文件:print os.path.dirname('D:\pytharm\學習文件\lianxi.txt'),? ? #輸出文件中的文件夾部分,元組'
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
?
1. os.name——判斷現(xiàn)在正在實用的平臺,Windows 返回 ‘nt'; Linux 返回’posix'2. os.getcwd()——得到當前工作的目錄。3. os.listdir()——指定所有目錄下所有的文件和目錄名4. os.remove()——刪除指定文件5. os.rmdir()——刪除指定目錄6. os.mkdir()——創(chuàng)建目錄7. os.path.isfile()——判斷指定對象是否為文件。是返回True,否則False8. os.path.isdir()——判斷指定對象是否為目錄。是True,否則False。9. os.getcwd()——獲得當前工作的目錄(get current work dir)13. os.chdir()——改變目錄到指定目錄14. os.path.getsize()——獲得文件的大小,如果為目錄,返回015. os.path.abspath()——獲得絕對路徑。16. os.path.join(path, name)——連接目錄和文件名?
?
3? 實例(使用的是linux系統(tǒng))#!/user/bin/python
#!/user/bin/python #coding:utf-8#打印出某文件夾下面的文件文件夾和子文件子文件夾的絕對路徑import os allfile=[] def dirList(path):filelist=os.listdir(path)for filename in filelist:filepath= os.path.join(path,filename)if os.path.isdir(filepath): # 遞歸調用本身:傳入子文件的路徑,listdir,遍歷,文件名和路徑合起來,判斷是不是目錄,dirList(filepath) allfile.append(filepath)return allfileafile=dirList('/home/daqing/daqing/testfile/user1') print afile4目錄遍歷簡潔升級版
? ? os.walk(path):該函數(shù)返回一個元組,元組的元素是:每次遍歷的路徑名,當前目錄列表和文件列表? ??
os.walk('/home/daqing/lianxi/testfile/user2')返回一個生成器類型,大體格式應當是('/home/daqing/lianxi/testfile/user2',['hehe'],['7777']) import os for path,d,filelist in os.walk('/home/daqing/lianxi/testfile/user2'):for filename in filelist:print os.path.join(path,filename)#返回結果: /home/daqing/lianxi/testfile/user2/7777 /home/daqing/lianxi/testfile/user2/hehe/8888目目錄結構如下:
── user2
│?? ├── 7777
│?? └── hehe
│? ? ? ? ? ?├── 8888
│? ? ? ? ? ?└── haha
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/0-lingdu/p/9431543.html
總結
以上是生活随笔為你收集整理的核心编程9 文件和文件的输入输出 (os模块)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java设置模式
- 下一篇: [Python] Django框架入门