python學習日記_第七天(ex16~17)
L16讀寫檔案
1.通過賦予open() ‘w’引數來寫入內容到檔案中。
#coding:utf-8 #習題 16: 讀寫檔案 #備註:執行時遇到問題,執行完畢後發現檔案沒有被修改。找到原因是因為: #***沒有給出txt的絕對路徑時,檔案會在當前目錄下生成,而不是我希望的L16的資料夾下。要注意。 from sys import argv script, filename = argv print "We're going to erase %r." % filename #CTRL-C可以用來退出執行中的指令碼 print "If you don't want that, hit CTRL-C (^C)." print "If you do want that, hit RETURN." #這邊用raw_input作為一箇中斷程式執行的作用。 raw_input("?") print "Opening the file..." #open的引數為"w","r,"a","U",用了大寫W報錯 #target = open(filename, 'W') target = open(filename,'w') #因為使用了open的w模式,下面的truncate命令其實是多餘的。 #因為本身就會消除原來檔案內的內容。簡化程式碼,註釋掉。 #print "Truncating the file. Goodbye!" #target.truncate() #讓使用者輸入三個句子 print "Now I'm going to ask you for three lines." line1 = raw_input("line 1: ") line2 = raw_input("line 2: ") line3 = raw_input("line 3: ") #向檔案內寫入上面輸入的三個句子 print "I'm going to write these to the file." #原始碼(在6行內輸出) # target.write(line1) # target.write("\n") # target.write(line2) # target.write("\n") # target.write(line3) # target.write("\n") #在1行中輸出 target.write("%s\n%s\n%s\n" % (line1, line2, line3)) print "And finally, we close it." target.close() """ 加分題 1如果你覺得自己沒有弄懂的話,用我們的老辦法,在每一行之前加上註解,為自己理清思路。就算不能理清思路,你也可以知道自己究竟具體哪裡沒弄明白。 2寫一個和上一個練習類似的指令碼,使用 read 和 argv 讀取你剛才新建的檔案。 from sys import argv script, filename = argv txt = open(filename) print txt.read() 3檔案中重複的地方太多了。試著用一個 target.write() 將 line1, line2, line3 打印出來,你可以使用字串、格式化字元、以及轉義字元。 target.write("%s\n%s\n%s\n" % (line1, line2, line3)) 4找出為什麼我們需要給 open 多賦予一個 'w' 引數。提示: open 對於檔案的寫入操作態度是安全第一,所以你只有特別指定以後,它才會進行寫入操作。 因為預設open只能讀取不能寫入,所以要寫入必須賦予'w'引數。 """
L17更多檔案操作
1.通過import匯入更多功能,複用現成功能,而不是浪費時間再造輪子也是寫程式很重要的一個思想。
2.首次用到exists功能。可以判斷檔案是否存在,返回一個布林值。
#coding:utf-8 #習題 17: 更多檔案操作 from sys import argv from os.path import exists script, from_file, to_file = argv print "Copying from %s to %s" % (from_file, to_file) input = open(from_file) indata = input.read() print "The input file is %d bytes long" % len(indata) print "Does the output file exist? %r" % exists(to_file) print "Ready, hit RETURN to continue, CTRL-C to abort." raw_input() output = open(to_file, 'w') output.write(indata) print "Alright, all done." output.close() input.close """ 加分題: 1.再多讀讀和 import 相關的材料,將 python 執行起來,試試這一條命令。試著看看自己能不能摸出點門道,當然了,即使弄不明白也沒關係。 *模組和包的參考文件:http://wiki.woodpecker.org.cn/moin/PythonEssentialRef8 import當然是用來引入各種模組、包,從而使用其中包含的方法,定義的資料等。具體等日後豐富。 2.這個指令碼 實在是 有點煩人。沒必要在拷貝之前問一遍把,沒必要在螢幕上輸出那麼多東西。試著刪掉指令碼的一些功能,讓它使用起來更加友好。 見最後自己寫的東西。 3.看看你能把這個指令碼改多短,我可以把它寫成一行。 一行= =,input.close就一行了吧。。。試試看 不算import行,引數定義行和關閉檔案行,的確一行就夠了的說: *********** from sys import argv script, from_file, to_file = argv open(to_file, 'w').write(open(from_file).read()) *********** 4.我使用了一個叫 cat 的東西,這個古老的命令的用處是將兩個檔案“連線(con*cat*enate)”到一起,不過實際上它最大的用途是列印檔案內容到螢幕上。你可以通過 man cat 命令瞭解到更多資訊。 5.使用 Windows 的同學,你們可以給自己找一個 cat 的替代品。關於 man 的東西就別想太多了,Windows 下沒這個命令。 對Win滿滿的惡意=。=~~powershell下可以使用get-content [-Path]來讀取txt檔案 6.找出為什麼你需要在程式碼中寫 output.close() 。 為了回收資源。 """ """ 自己寫的能夠實現從txt1複製到txt2功能的程式碼: from sys import argv script, from_file, to_file = argv txt = open(from_file) target = open(to_file, 'w') target.write(txt.read()) print "over" txt.close target.close print "files are closed" """
相關推薦
python學習日記_第七天(ex16~17)
L16讀寫檔案 1.通過賦予open() ‘w’引數來寫入內容到檔案中。 #coding:utf-8 #習題 16: 讀寫檔案 #備註:執行時遇到問題,執行完畢後發現檔案沒有被修改。找到原因是因為: #***沒有給出txt的絕對路徑時,檔案會在當前目錄下生成,而不是我希
python學習日記_第六天(ex14~15)
L14 提示和傳遞 1.鞏固引數和變數還有%這個字串格式化工具 2.提示符可以定義一個固定值來複用會比較方便 #coding:utf-8 from sys import argv #指令碼,使用者名稱,男主角,女主角 script, user_name, role_m
python學習之路-第七天-python面向對象編程簡介
構造函數 represent eth 賦值 nts 數據 and 面向 七天 面向對象編程 在python中,同樣是類和對象作為重要的組成部分。 而且在python中基本數據類型如int都是有封裝類的,都有自己的方法,應該是和java裏面的Integer類似吧 類包括域和方
.Net基礎篇_學習筆記_第四天_關系運算符和邏輯運算符
不能 main 運算 ram true con 是否 names 關系 1.關系運算符 包含:> < <= >= == != 以及bool類型中的true和false。 2.邏輯運算符 與 &
python學習之路-第三天-一個簡單的腳本
tro 說明 .py else zipfile rect dylib 環境 cef 現在有一個需求:把某個目錄下的文件備份到指定到另外一個目錄下,而且壓縮後文件為zip文件 # -*- coding:utf-8 -*- #! /usr/bin/python # Filena
Python學習筆記(第三天,文件操作、函數)
input 釋放空間 打開方式 只需要 不能 解決 信息 無法查看 一個 一、文件處理 1、文件打開模式 打開文本的模式,默認添加t,需根據寫入或讀取編碼情況添加encoding參數。 r 只讀模式,默認模式,文件必須存在,不能存在則報異常。 w
python學習筆記:第7天 深淺拷貝
我們 spl 交集 再次 ipy section 結束 技術分享 dict 目錄 1. 基礎數據類型補充 2. set集合 3. 深淺拷貝 1. 基礎數據類型補充 (1)join方法 join方法是把一個列表中的數據進行拼接,拼接成字符串(與split方法相反,spli
python學習筆記:第8天 文件操作
只讀 查看 lse tex ati 使用場景 java 創建文件 存在 1. 文件操作介紹 說到操作文件我們肯定會想到流,文件的操作都是通過流來操作的。在python中文件的操作非常簡單,並不像Java等其他語言一樣有各種各樣的流操作,我們直接使用open函數即可打開一個文
學習前端的第七天
font 真的 align 開始 開始學習 black 機器人 spa 服務 不知不覺,學習前端已經一個星期了,每天一點點,算是堅持下來,html第一遍看完,學習了簡單的標簽,為下一步學習html5,xhtml,css做好準備和鋪墊,完成第一個小項目(或許談不上)第一個小任
python學習筆記:第11天 閉包及迭代器
目錄 1. 函式名的使用 2. 閉包 3. 迭代器 1. 函式名的使用 其實函式名也是一個變數,但它是一個比較特殊的變數,與小括號配合可以執行函式的變數: 函式名其實和記憶體一樣,也可以使用print檢視它的記憶體地址: In[22]: def func1(): .
網路管理員學習筆記_第七章 網路安全_002_概述
一 . 網路安全基本概念 (1) 網路安全就是通過一組規則約束網路活動。 (2) 網路安全的5個基本要素:機密性,完整性,可用性,可控性,可審查性 (3)網路安全威脅的五個主要表現: a. 非授權訪問。
網路管理員學習筆記_第七章 網路安全_002_防火牆技術
1. 防火牆簡介 a. 防火牆位於兩個不同信任度網路之間,負責進行通訊控制,強制實施統一的安全策略,防止對重要資訊資源的非法行為。 b. 防火牆可以是軟甲也可以是硬體裝置,或者兩者的組合。 &nbs
python學習筆記:第12天 列表推導式和生成器
目錄 1. 迭代器 2. 推導式 1. 迭代器 什麼是生成器呢,其實生成器的本質就是迭代器;在python中有3中方式來獲取生成器(這裡主要介紹前面2種) 通過生成器函式獲取 通過各種推導式來實現生成器 生成器函式 我們來看一個普通的函式: In[2]: def fu
python學習筆記:第12天 列表推導式和生成器
clas traceback 括號 module recent else 接收 工作 last 目錄 1. 叠代器 2. 推導式 1. 叠代器 什麽是生成器呢,其實生成器的本質就是叠代器;在python中有3中方式來獲取生成器(這裏主要介紹前面2種) 通過生成器函數獲
java學習之路-------第七天
今天我們講到了面向物件: 面向物件的三大特徵:繼承,封裝,多型 面向過程:凡事都得親力親為 面向物件:不是所有的事都自己幹,由事物的執行者變成指揮者 類、引用、物件 類 引用 = new 物件 Random r = new Random();
python學習筆記:第18天 面向物件04-反射
目錄 issubclass和isinstance 區分函式和方法 反射 issubclass和isinstance issubclass:可以判斷一個類是否另一個類的子類。 # issubclass class A: pass class B(A): p
python學習筆記:第21天 常用內建模組-1
目錄 一、collections模組 二、時間模組 也可以在我的個人部落格上閱讀 一、collections模組 1. Counter Counter是⼀個計數器,主要⽤統計字元的數量,之前如果我們要統計字串的話要寫如下演算法: s = 'Wed Nov 14 08:58:45 CS
學習Linux課程第七天
昨天晚上有事沒參加課程,今天一早就起來看錄播視訊@[email protected],先來總結一下早上學的知識 一、檔案特殊許可權 1、SUID:讓命令的執行者臨時獲取到所有者的身份 chmod u+s 檔名 2、SGID:讓目錄中新的檔案的所有組歸屬上級目錄 ch
【python學習筆記】第6天
繼續今天的python學習 昨天學到用multiprocessing模組中的Process類建立程序,那麼今天學會建立一個Process的子類來建立一個程序 from multiprocessing import Process import time class My
【python學習筆記】第8天
繼續今天的python學習 昨天我們說到了多執行緒共享資料(全域性變數),那麼今天我們就緊接著來說一下多執行緒不共享資料的使用方式 import threading import time def test1(): the_number = 0 for i