1.寫程序需要先梳理思路,甚至可以畫出邏輯流程圖,一步一步劃分為細的步驟:
例如本次的數(shù)據(jù)提取:涉及到兩個文件一個txt的文件夾和一個CSV文件,那么就可以梳理思路就是,讀取txt文件,讀取csv文件,分類數(shù)據(jù),新建類別文件夾保存文件.

注意:確定要實現(xiàn)哪些小的功能,一個函數(shù)def就實現(xiàn)一個小功能
2.注意標明編碼
#!/usr/bin/python
申明l這是個python腳本,要用python解釋器來運行,有時候解釋器路徑不對,
換成通用的:#!/usr/bin/env python 即可
---------------------------
# -*- coding: utf-8 -*-
用來指定文件編碼為utf-8的
3.讀文件 with open('路徑', 'r') as f 和f = open()的區(qū)別:
參考:https://blog.csdn.net/a1496785/article/details/83011974
with open("test.txt","r") as file:
for line in file.readlines():
print line
用with語句的好處,就是到達語句末尾時,會自動關(guān)閉文件,即便出現(xiàn)異常。
file = open("test.txt","r")
for line in file.readlines():
print line
file.close()
這樣直接打開文件,如果出現(xiàn)異常,如讀取過程中文件不存在或異常,則直接出現(xiàn)錯誤,close方法無法執(zhí)行,文件無法關(guān)閉
4.讀取文件常用的三種方法 :read()和readline() ,readlines()的區(qū)別?
參考:https://blog.csdn.net/weixin_42168614/article/details/88292146
- read([size])方法:從文件當前位置起讀取size個字節(jié),若無參數(shù)size,則表示讀取至文件結(jié)束為止,它范圍為字符串對象.
- readline()方法:從字面意思可以看出,該方法每次讀出一行內(nèi)容,所以,讀取時占用內(nèi)存小,比較適合大文件,該方法返回一個字符串對象。
- readlines()方法:讀取整個文件所有行,每行保存為一個字符串,可以用空列表保存在一個列表(list)變量中,該列表可以由Python的for in 結(jié)果進行處理,每行作為一個元素,但讀取大文件會比較占內(nèi)存。
f = open('1.txt', 'r') #以讀方式打開文件
result = list()
for line in f.readlines(): #依次讀取每行
line = line.strip() #去掉每行頭尾空白
if not len(line) or len(line) < 4: #判斷是否是空行或注釋行
continue #是的話,跳過不處理
result.append(line) #保存
# result.sort() #排序結(jié)果
print(result)
f.close()
5.路徑問題,
得注意的是:在Windows系統(tǒng)中,在文件路徑中使用反斜杠(\)而不是斜杠(/)。
路徑一般寫成讀寫放在開頭為全局變量,可以作為參數(shù)向函數(shù)傳參
- python中 STR.strip() 的用法:
參考:https://www.cnblogs.com/kaishirenshi/p/8610892.html
- str.strip()就是把字符串(str)的頭和尾的空格,以及位于頭尾的\n \t之類給刪掉。
- 字符串str還有另外兩種類似的方法lstrip()和rstrip()。第一個是只刪頭,第二個是只刪尾巴。
7.split():拆分字符串.
參考:https://blog.csdn.net/qq_24407657/article/details/80265217
通過指定分隔符對字符串進行切片,并返回分割后的字符串作為元素的列表(list)
語法:str.split(str="",num=string.count(str))[n]
分割兩次,取第一個分片(序號為0)

8.讀取csv文件:
with open( 'd:file.csv', 'r', encoding= 'utf-8') as csvFile: #以只讀方式打開"file.csv"文件并返回文件對象"csvFile"
reader =csv.reader(csvFile) #只上傳第一個參數(shù)"csvFile",剩下兩個采用缺省設定
for row in reader:
print (str(row)) #輸出"reader"中的每行數(shù)據(jù)
9,