<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 練習17.更多文件操作 現在讓我們再學習幾種文件操作。我們將編寫一個Python腳本,將一個文件中的內容拷貝到另外一個文件中。這個腳本很短,不過它會讓你對于文件操作有更多的了解。 ~~~ 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) # we could do these two on one line, how? in_file = open(from_file) indata = in_file.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() out_file = open(to_file, 'w') out_file.write(indata) print "Alright, all done." out_file.close() in_file.close() ~~~ 你應該很快注意到了我們`import`了又一個很好用的命令`exists`。這個命令將文件名字符串作為參數,如果文件存在的話,它將返回`True`,否則將返回 `False`。在本書的下半部分,我們將使用這個函數做很多的事情,不過現在你應該學會怎樣通過 import 調用它. 通過使用`import`,你可以在自己代碼中直接使用其他更厲害的(通常是這樣,不過也不 盡然)程序員寫的大量免費代碼,這樣你就不需要重寫一遍了。 ## 你看到的結果 和你前面寫的腳本一樣,運行該腳本需要兩個參數,一個是待拷貝的文件,一個是要拷貝至的文件。我再創建一個名為`test.txt`的測試文件,我們將看到如下的結果: ~~~ $ echo "This is a test file." > test.txt ~~~ $ cat test.txt This is a test file. $ $ python ex17.py test.txt new_file.txt Copying from test.txt to new_file.txt The input file is 21 bytes long Does the output file exist? False Ready, hit RETURN to continue, CTRL-C to abort. ~~~ Alright, all done. ~~~ 該命令對于任何文件都應該是有效的。試試操作一些別的文件看看結果。不過小心別把你的重要文件給弄壞了。 > **Warning:**你看到我用`echo`命令創建一個文件,并用`cat`命令展示一個文件了吧?它們只能在 Linux 和 OSX 下使用,你可以閱讀附錄A獲得者兩個命令的使用方法。 ## 附加題 > 1. 這個腳本 實在是有點煩人。沒必要在拷貝之前問一遍把,沒必要在屏幕上輸出那么多東西。試著刪掉腳本的一些功能,讓它使用起來更加友好。 > 1. 看看你能把這個腳本改多短,我可以把它寫成一行。 > 1. 我使用了一個叫`cat`的東西,這個古老的命令的用處是將兩個文件“連接(con*cat*enate)”到一起,不過實際上它最大的用途是打印文件內容到屏幕上。你可以通過 `man cat` 命令了解到更多信息。(windows下沒有這個命令) > 1. 找出為什么你需要在代碼中寫 output.close() 。 > 1. 再多讀讀和`import`相關的材料,將python運行起來,試試這一條命令。試著看看自己能不能摸出點門道,當然了,即使弄不明白也沒關系。 ## 常見問題 ### Q: 為什么`'w'`要寫在引號里? > 它只是個字符串,你已經做過太多關于字符串的練習了,你知道什么是字符串的,對嗎? ### Q:總是感覺這些練習很難,這正常嗎? > 這很正常的。直到你做完練習36甚至完成這本書的學習,用python做出一些作品,編程對你來說可能都不是一件簡單的事情。每個人都不一樣,所以只要堅持復習你認為困難的習題,直到你真的搞明白它們,要有耐心。 ### Q:函數`len()`是干什么用的? > 它能獲得參數的長度,返回值是一個數字,你試著用用這個方法。 ### Q:我嘗試改短代碼的時候,在腳本的結尾處遇到一個關于文件關閉的問題。 > 你可能做了一些類似這樣的事情,比如`indata = open(from_file).read()`,這樣寫的話,就不需要在執行關閉操作,當執行完這一行的時候,文件自動就被關閉了。 ### Q: 我遇到一個異常`Syntax:EOL while scanning string literal` > 你應該是忘記在字符串的結尾加上引號了,回到你出錯的那行代碼,檢查一下。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看