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 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.字符串给出当前平台使用的终止符,例如: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 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很类似,不同点在于,它不是将全部的行读到列表中而是创建了一个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-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

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

在 VS Code 中,可以通過以下步驟在終端運行程序:準備代碼和打開集成終端確保代碼目錄與終端工作目錄一致根據編程語言選擇運行命令(如 Python 的 python your_file_name.py)檢查是否成功運行並解決錯誤利用調試器提升調試效率
