1. 程式人生 > >自然語言處理爬過的坑:使用python遍歷所有的資料夾中的所有文字.標準庫OS的常用函式總結大全

自然語言處理爬過的坑:使用python遍歷所有的資料夾中的所有文字.標準庫OS的常用函式總結大全

# -*- coding: utf-8 -*-
import os
import codecs

def search(filepath):
#遍歷filepath下所有檔案,包括子目錄
    files = os.listdir(filepath)
    for file in files:
        file_text = os.path.join(filepath,file)
        if os.path.isdir(file_text):
            search(file_text)
        else:
            path = os.path.join(filepath,file_text)
            print path
            with codecs.open(path,'r','utf-8')as file:
                lines = [line.strip() for line in file]
                #print text
                print lines

#遞迴遍歷/root目錄下所有檔案
search(r'C:\Users\ME\Desktop\Python project\pachong\scrapy\baichuan2\baoxian')
#注意前面的r,如果沒有,有些\需要轉義,如\t,\b,\n    
例如search('C:\Users\ME\Desktop\Python project\pachong\scrapy\\baichuan2\\baoxian')

執行,就會得到以下的結果 


因為是python2 的原因,所以中文標題會以ASCII碼的格式輸出,文字內容則會以Unicode的格式輸出。

當使用python3 的時候,都會以utf-8的格式輸出,例如以下圖片

因為要儲存檔案,所以需要引入彼岸庫OS,這裡列舉常用的幾個函式。

1、os.sep
獲得當前作業系統使用的目錄分隔符,比如 Windows 就會得到\而 Linux/Unix 就會得到/
os.name
獲得當前使用的作業系統,Windows 是 NT 核心,所以會得到nt,而 Linux/Unix 使用者則會得到posix
2、os.getcwd()
獲得當前工作目錄,即當前 Python 指令碼工作的目錄路徑。
3、os.getenv()
用來獲得環境變數
os.getenv('PATH')
4、os.environ
可以獲取並修改環境變數
print(os.environ['PATH'])
os.environ += 'D:/testdir/bin/'
print(os.environ["PATH"])
5、os.listdir()
列出某目錄下所有的目錄和檔案
print(os.listdir())

6、os.remove()

刪除檔案

os.remove('D:/test.file')

7、os.system()
執行 Shell 或者 CMD 命令
os.system('ifconfig')
8、os.linesep
獲取當前平臺使用的行終止符。例如,Windows 使用\r\n,Linux 使用\n而 Mac 使用\r。
9、os.path.split()
獲得一個列表,list[0] 是路徑的,list[1] 是檔名
path = 'D:/game/gtav/bin/gtav.exe'
print(os.path.split(path)[0])
print(os.path.split(path)[1])
10、os.path.isfile() 和 os.path.isdir()
判斷路徑是不是檔案 / 目錄
print(os.path.isfile('D:/game/gtav/bin/gtav.exe'))
print(os.path.isdir('D:/game/gtav/bin'))
11、os.path.existe()
函式用來檢驗給出的路徑是否真地存在
path = 'D:\\hadoop-2.6.5\\bin'
print(os.path.exists(path))
path = 'D:\\hadoop-2.6.5\\bin\\hadoop'
print(os.path.exists(path))
12、os.chdir(dirname)
切換工作目錄,相當於cd的命令
os.chdir('D:/game/gtav/')
print(os.getcwd())
13、os.path.getsize(name)
獲取檔案大小,以位元組為單位
size = os.path.getsize('D:/iso/debian-8.6.0-amd64-DVD-1.iso')
print(size/1024/1024/1024, 'GB')
14、os.path.abspath(name)
獲取絕對路徑,如果在 Python 工作目錄下有一個檔案file.txt,那麼我就可以直接open('file.txt'),也可以用該方法獲得其絕對路徑print(os.path.abspath('file.txt'))。也可以用來規範路徑字串print(os.path.abspath('D:/game\gtav\bin/gtav.exe'))
15、os.path.normpath(path)
專門用來規範路徑
path = 'D:/test/sdf\zfb'
print(os.path.normpath(path))
16、os.path.splitext()
獲取檔名和副檔名
path = '/home/shawn/hello.py'
print(os.path.splitext(path))
17、os.path.join(path,name)
連線目錄和檔名,可以不用自己新增分隔符,能減少 bug 率提升跨平臺性
18、os.path.basename(path)
獲取路徑中的檔名
19、os.path.dirname(path)
獲取路徑中的目錄名