1. path1 = os.path.dirname(__file__) php
2. print(path1)#獲取當前運行腳本的絕對路徑 html
3. path2 = os.path.dirname(os.path.dirname(__file__)) #
4. print(path2)#獲取當前運行腳本的絕對路徑(去掉最後一個路徑) python
後面以此類推
拼接路徑
config_path=os.path.join(os.path.dirname(__file__),config_path)linux
問題2:程序員
extend()和expend的區別
list.append(object) 向列表中添加一個對象object
list.extend(sequence) 把一個序列seq的內容添加到列表中sql
問題3:數據庫
sql中的set和update語句編程
UPDATE Person
SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'windows
其使用格式:
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值多線程
sql 中的rollback,commit(?)
ROLLBACK 只能在一個事務處理內使用(在執行一條 START TRANSACTION 命令以後)
ROLLBACK 語句回退START TRANSACTION 以後的全部語句
哪些語句能夠回退? 事務處理用來管理 INSERT 、 UPDATE 和DELETE 語句
你不能回退 SELECT 語句。(這樣作也沒有什麼意義。)你不能回退 CREATE 或 DROP 操做。事務處理塊中可使用這兩條語句,但若是你執行回退,它們不會被撤銷。
源文檔 http://www.javashuo.com/article/p-cwbafvbq-ee.html
問題4:
dict() 函數用於建立一個字典。返回一個字典。
d = dict() d['key'] = 'value' #插入值
問題5:
python模塊之configparser
configparser用於處理特定格式的文件,其本質上是利用open來操做文件。
源文檔 https://www.cnblogs.com/huamingao/p/6081064.html
解析配置文件:
cfg = configparser.ConfigParser() #這個read表示對某個文件用讀打開, cfg.read(config_path,encoding = 'utf-8')
經常使用方法:
1 #返回指定結點下的全部鍵值對
ret = config.items('section1')
2 #options返回的是指定店鋪的配置文件中的鍵
keys = cfg.options(shop_id)
3 獲取指定節點下指定key的值
v = config.get('section1', 'k1')
問題6:
報錯:
invalid character in identifier報錯:
意思就是「標識符中的無效字符」,檢查下有沒有字符是中文的,把中文字符改爲英文字符再運行就OK啦。
問題7:
Python multiprocessing模塊
http://blog.csdn.net/dutsoft/article/details/54694798
多線程模塊 multiprocessing.dummy #建立管理進程模塊: • Process(用於建立進程模塊) • Pool(用於建立管理進程池) • Queue(用於進程通訊,資源共享) • Value,Array(用於進程通訊,資源共享) • Pipe(用於管道通訊) • Manager(用於資源共享) #同步子進程模塊: • Condition • Event • Lock • RLock • Semaphore
問題8:
linux與windows的不一樣:
linux的字符界面不是windows 下的dos界面
1 linux嚴格區分大小寫
2 linux中全部內容以文件形式保存,包括硬件。*
3 linux不靠擴展名區分文件類型(有約定俗成的 擴展,可是隻是爲了給管理員看的)
4 windows下的程序不能直接在linux中安裝和運行的。
字符界面的優點
字符界面佔用系統資源少
字符界面減小了出錯、被攻擊的可能性。
問題9:
報錯:
xxxxx takes 1 positional argument but 2 were given
缺乏參數
問題10:
#Python 獲取日期 self.todaydate=datetime.date.today() self.yesterday=self.todaydate-datetime.timedelta(days=1) self.tomorrow=self.todaydate+datetime.timedelta(days=1) self.before7day=self.todaydate-datetime.timedelta(days=7) self.todaytime=datetime.datetime.now().strftime('%Y-%m-%dT00:00:00') self.yesterdaytime=self.yesterday.strftime('%Y-%m-%dT00:00:00') self.tomorrowtime=self.tomorrow.strftime('%Y-%m-%dT00:00:00')
注意:
將日期類型當作參數的時候,要根據參數類型修改,有時候參數多是字符串,要將日期類型改成str類型的(判斷日期相等的時候也可能須要)。
問題11:
傳入參數個數報錯,多是由於寫方法的時候沒有加入self。
SQL SELECT 日期函數的時候須要一字符串的方式傳入。
爬取的數據在寫入數據庫的時候要注意是不是None類型,數據庫字段多是notnull類型。
問題12:
怎麼聲明編碼
源文檔 <http://blog.csdn.net/wangbenzhang/article/details/76448784>
Python編程時,常常須要跳過第一行讀取文件內容。
源文檔 <http://blog.csdn.net/vernice/article/details/46501885>
問題13:
python如何生成鏈表
見牛客網的習題
mergeHead = ListNode(90)#建立一個鏈表結點
pHead1.val #pHead1結點的值
pHead.next表示該結點的下一個結點
問題14
Python 字典如何獲取字典中最大值對應的鍵
1. 利用min(dict, key=dict.get) >>> d = {1:1, 2:0, 3:2} {1: 1, 2: 0, 3: 2} >>> min(d, key=d.get) 2 2. 利用lambda函數 >>> min(d.items(), key=lambda x: x[1]) (2, 0) >>> min(d, key=lambda x: d[x]) 2 3. collections模塊中的Counter方法返回列表中每一個元素出現的次數,返回的結果是一個字典,元素做爲鍵,次數做爲值。 tmp = collections.Counter(numbers)
defget_max(data): count=Counter(data) m=max(count,key=count.get) returnm
問題15
1 Case具備兩種格式。簡單Case函數和Case搜索函數。
--簡單Case函數
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其餘' END
--Case搜索函數
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其餘' END
源文檔 <http://www.javashuo.com/article/p-whxphpdd-er.html>
2 表中有A B C三列,用SQL語句實現:當A列大於B列時選擇A列不然選擇B列,當B列大於C列時選擇B列不然選擇C列。
select (case when a>b then a else b end),
(case when b>c then b esle c end)
from table_name
問題16:
1 Cmd ipconfig查詢個人ip信息
2 寫代碼要遵循開發封閉原則,雖然在這個原則是用的面向對象開發,可是也適用於函數式編程,
簡單來講,它規定已經實現的功能代碼不容許被修改,但能夠被擴展。
源文檔 <http://python.jobbole.com/86632/>
問題17:
1 python的值傳遞和引用傳遞區別
源文檔 <http://www.dataguru.cn/thread-489552-1-1.html>
2 深刻理解python中函數傳遞參數是值傳遞仍是引用傳遞
源文檔 <http://www.jb51.net/article/127667.htm>
Python不容許程序員選擇採用傳值仍是傳 引用。Python參數傳遞採用的確定是「傳對象引用」的方式。實際上,這種方式至關於傳值和傳引用的一種綜合。若是函數收到的是一個可變對象(好比字典 或者列表)的引用,就能修改對象的原始值——至關於經過「傳引用」來傳遞對象。若是函數收到的是一個不可變對象(好比數字、字符或者元組)的引用,就不能 直接修改原始對象——至關於經過「傳值」來傳遞對象。
3 python中self的含義
• self在定義時須要定義,可是在調用時會自動傳入。
• self的名字並非規定死的,可是最好仍是按照約定是用self
• self老是指調用時的類的實例。