最近研究研究了css,少不了去網上分析一下別人的網頁,但很多網站的css文件都是要么寫在一行,要么一個換行都沒有,看起來極其痛苦,所以寫一個腳本轉換一下,轉換為比較有可讀性的格式。下面就是這個腳本:importstring,sysimportre,StringIOTAB=4defformat(ss):f=open(ss,"r")data=f.read()f.close()dlen=len(data)i=0buf=StringIO.StringIO()sta
系統 2019-09-27 17:38:44 1750
使用命令行時,如果要添加選項的話,python2.3里新增加了一個模塊叫optparse,也是專門來處理命令行選項的。復制代碼代碼如下:fromoptparseimportOptionParserparser=OptionParser()parser.add_option("-p","--pdbk",action="store_true",dest="pdcl",default=False,help="writepdbkdatatooracledb")pa
系統 2019-09-27 17:38:37 1750
通過下面的步驟讓你由淺入深明白裝飾器是什么。假定你擁有最基本的Python知識,本文闡述的東西可能對那些在工作中經常接觸Python的人有很大的幫助。1、函數(Functions)在Python里,函數是用def關鍵字后跟一個函數名稱和一個可選的參數表列來創建的,可以用關鍵字return指定返回值。下面讓我們創建和調用一個最簡單的函數:>>>deffoo():...return1>>>foo()1該函數的函數體(在Python里將就是多行語句)是強制性的并
系統 2019-09-27 17:38:30 1750
引言您是否能編寫命令行工具?也許您可以,但您能編寫出真正好用的命令行工具嗎?本文討論使用Python來創建一個強健的命令行工具,并帶有內置的幫助菜單、錯誤處理和選項處理。由于一些奇怪的原因,很多人并不了解Python?的標準庫具有制作功能極其強大的*NIX命令行工具所需的全部工具。可以這樣說,Python是制作*NIX命令行工具的最佳語言,因為它依照“batteries-included”的哲學方式工作,并且強調提供可讀性高的代碼。但僅作為提醒,當您發現使
系統 2019-09-27 17:38:28 1750
我們都知道并發(不是并行)編程目前有四種方式,多進程,多線程,異步,和協程。多進程編程在python中有類似C的os.fork,當然還有更高層封裝的multiprocessing標準庫,在之前寫過的python高可用程序設計方法中提供了類似nginx中masterprocess和workerprocess間信號處理的方式,保證了業務進程的退出可以被主進程感知。多線程編程python中有Thread和threading,在linux下所謂的線程,實際上是LW
系統 2019-09-27 17:38:17 1750
面向對象的編程語言在寫大型程序的的時候,往往比面向過程的語言用起來更方便,安全。其中原因之一在于:類機制。類,對眾多的數據進行分類,封裝,讓一個數據對象成為一個完整的個體,貼近現實生活,高度抽象化。但是,python對類的封裝并不好,因為所有的屬性和方法都是公開的,你可以隨意訪問或者寫入,你可以在類的外部對類的屬性進行修改,甚至添加屬性。這的確讓人感到不安。下面就來總結一下學習后的解決方案。1,使用2個下劃線前綴隱藏屬性或者方法。__xxx#!/usr/b
系統 2019-09-27 17:38:12 1750
我在工作的時候,在測試環境下使用的數據庫跟生產環境的數據庫不一致,當我們的測試環境下的數據庫完成測試準備更新到生產環境上的數據庫時候,需要準備更新腳本,真是一不小心沒記下來就會忘了改了哪里,哪里添加了什么,這個真是非常讓人頭疼。因此我就試著用Python來實現自動的生成更新腳本,以免我這爛記性,記不住事。主要操作如下:1.在原先basedao.py中添加如下方法,這樣舊能很方便的獲取數據庫的數據,為測試數據庫和生產數據庫做對比打下了基礎。defselect
系統 2019-09-27 17:38:12 1750
python中對文件、文件夾(文件操作函數)的操作需要涉及到os模塊和shutil模塊。得到當前工作目錄,即當前Python腳本工作的目錄路徑:os.getcwd()返回指定目錄下的所有文件和目錄名:os.listdir()函數用來刪除一個文件:os.remove()刪除多個目錄:os.removedirs(r“c:\python”)檢驗給出的路徑是否是一個文件:os.path.isfile()檢驗給出的路徑是否是一個目錄:os.path.isdir()判
系統 2019-09-27 17:38:10 1750
列表有自己的sort方法,其對列表進行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因為元組是不可修改的。排序,數字、字符串按照ASCII,中文按照unicode從小到大排序x=[4,6,2,1,7,9]x.sort()print(x)#[1,2,4,6,7,9]如果需要一個排序好的副本,同時保持原有列表不變,怎么實現呢?x=[4,6,2,1,7,9]y=x[:]y.sort()print(y)#[1,2,4,6,7,9]print(x)#[4,
系統 2019-09-27 17:38:09 1750
前言任何應用都離不開數據,所以在學習python的時候,當然也要學習一個如何用python操作數據庫了。MySQLdb就是python對mysql數據庫操作的模塊。今天寫了個工具,目的是把csv中的數據插入到數據庫中去。其中有一部分,是需要分別向兩張表中插入兩條數據,如果第二張表中的數據已經存在,那么第一張表中的數據也不需要插入。然后通過百度查找發現,其實MySQLdb庫,自帶了事務處理的功能,pymysql庫也是一樣。conn=MySQLdb.conne
系統 2019-09-27 17:38:06 1750