日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 中文件输入输出及os模块对文件系统的操作

發布時間:2025/3/20 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 中文件输入输出及os模块对文件系统的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

整理了一下python 中文件的輸入輸出及主要介紹一些os模塊中對文件系統的操作。

文件輸入輸出

1、內建函數open(file_name,文件打開模式,通用換行符支持),打開文件返回文件對象。

2、對打開文件進行讀取時,readline()與readlines()的區別在于是否一次性的讀取所有的內容,并將每行的信息作為列表中的一個子項。
例如:文件test.txt中

1,3,42,35,6

分別用readline與readlines對其進行讀取

r=file_object.readline(); #結果為1,3,4 r=file_object.readlines(); #結果為['1,3,4\n', '2,35,6']

3、文件迭代

使用迭代器的file.next()用于讀取文件的下一行。相比for循環,更復雜,一般采用 for循環直接迭代。

4、文件移動

seek(off,whence=0)可以在文件中移動文件指針到不同的位置,,* * 從文件中移動off個操作標記(文件指針),正往結束方向移動,負往開始方向移動。如果設定了whence參數,就以whence設定的起始位為準,0代表從頭開始,1代表當前位置,2代表文件最末尾位置。 * *
tell()可以展示 我們的移動過程,展示我們的當前位置

5、os模塊

6、文件寫入f.write();writelines()接受一個字符串列表作為參數
需要手動輸入換行符\n;

fobj=open('test','w');#直接在指定路徑下打開test1 ,如果沒有則直接生成,但若存在,則出錯; fobj.write('foo\n'); fobj.write('bar\n'); fobj.close(); #結果為 #foo #bar ''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import os; file_object=open(r'E:\Python\iostream_test\test.txt','r+'); aline=raw_input("Enter a line ('.'to quit):"); if aline !=".":file_object.write('%s%s' % (aline,os.linesep)); #在文件test.txt中寫入一條字符串結果為txt 文件中的一個內容

標準文件

一般程序一執行,就可以訪問3個標準文件,分別是標準輸入(一般是鍵盤)、標準輸出(到顯示器的緩沖輸出)和標準錯誤(到屏幕的非緩沖輸出),這里的緩沖、非緩沖是指open()的三個參數。

文件系統

對文件系統的訪問大多通過python的os模塊實現。該模塊是python訪問操作系統功能的主要接口。

os除了對進程和進程運行環境進行管理外,os模塊還負責處理大部分的文件系統操作,包括刪除/重命名文件,遍歷目錄樹,已經管理文件訪問權限等。

另一個os.path 模塊可以完成針對路徑名的操作,它提供函數 完成管理和操作文件路徑中的各個部分,獲取文件或者子目錄信息,文件路徑查詢等操作。

針對os path的操作,操作對象E:\Python\iostream_test文件及其下的test.txt文件

os.path.exists(),檢測指定路徑的文件或者目錄是否存在。

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import os; for tempdir in ('/test.txt',r'E:\Python\iostream_test\test.txt'):if os.path.exists(tempdir):print 'yes';break; else:print 'no temp directory available';tempdir=' '; #結果為yes, # 若in中改為('/test.txt',r'D:\Python\iostream_test\test.txt'),則結果為no temp directory available

os.path.isdir(),檢測指定了路徑是否存在且為一個目錄,只能是目錄,否則報錯。

import os; for tempdir in ('/test.txt',r'E:\Python\iostream_test\test.txt'):#in中檢測的是文件,而非目錄,所以未輸出yesif os.path.isdir(tempdir):print 'yes';break; else:print 'no temp directory available';tempdir=' '; # 輸出no temp directory available import os; for tempdir in ('/test.txt',r'D:\Python\iostream_test\test.txt'): #指定路徑在D盤,因而不存在if os.path.isdir(tempdir):print 'yes';break; else:print 'no temp directory available';tempdir=' '; ''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import os; for tempdir in ('/test.txt',r'E:\Python\iostream_test'):if os.path.isdir(tempdir):print 'yes';break; else:print 'no temp directory available';tempdir=' '; #輸出的是yes

同理可得os.path.isfile()只可檢測指定路徑是否存在且為一個文件

以下針對os中某些進行練習,針對文件的操作,因先檢測是否存在指定路徑,再對該路徑或者路徑中的文件做操作。更多的練習可以看read.md

import os; for tempdir in ('/tmp',r'E:\Python\iostream_test'):if os.path.isdir(tempdir):#檢測指定路徑是否存在且為一個目錄,并賦給tempdirprint 'yes';break; else:print 'no temp directory available';tempdir=' ';if tempdir:os.chdir(tempdir); #改變當前工作路徑cwd=os.getcwd(); #獲取當前工作路徑;print 'current temporany directory is :';print cwd;print os.listdir(cwd);print 'creating example directory';os.mkdir('example'); #在當前目錄下新建一個新的文件os.chdir('example'); #改變目錄到example的文件下cwd=os.getcwd();#獲取example的文件路徑print 'new working directory:'print cwd;print ' original directory listing :'print os.listdir(cwd);#列出(example)指定路徑下的文件os.chdir(tempdir);cwd=os.getcwd(); print os.listdir(cwd);#列出(tempdir)指定路徑下的文件 # 結果為: # current temporany directory is : # E:\Python\iostream_test # ['pspathex.py', 'read.md', 'read.py', 'test.txt'] # creating example directory # new working directory: # E:\Python\iostream_test\example # original directory listing : # [] # ['example', 'pspathex.py', 'read.md', 'read.py', 'test.txt']

os.path.join()方法將分離的各部分組合成一個路徑名

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! '''path=os.path.join(cwd,os.listdir(cwd)[0]);print ' full file pathname:'print path;#結果為E:\Python\iostream_test\example\filetest.txt

os.path.split(path)方法將組合路徑分成(路徑名,文件名)

path=os.path.join(cwd,os.listdir(cwd)[0]); print os.path.split(path);#(pathname,basename) #結果為('E:\\Python\\iostream_test\\example', 'filetest.txt')

os.path.splitext(os.path.basename(path))方法將文件分成(文件名,文件擴展名)

path=os.path.join(cwd,os.listdir(cwd)[0]); print os.path.splitext(os.path.basename(path));#(filename,extension) #結果為('filetest', '.txt')

相關模塊

永久存儲模塊,永久存儲數據:pickle 、marshal模塊、DBM風格模塊、shelve模塊

總結

以上是生活随笔為你收集整理的python 中文件输入输出及os模块对文件系统的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。