2014-09-22 42 views
-3

我是Learning Python the Hard Way。如何編輯此代碼以使用名爲'bobsDetails.txt'的文件?使用raw_input或argv讀取文件

from sys import argv 
script, filename = argv 
txt = open(filename) 
print "Here's your file %r:" % filename 
print txt.read() 
print "Type the filename again:" 
file_again = raw_input("> ") 
txt_again = open(file_again) 
print txt_again.read() 
+2

修復*什麼* ?!有什麼問題?會發生什麼,以及會發生什麼?什麼是'bobsDetails.txt'應該是? – jonrsharpe 2014-09-22 19:18:11

+0

什麼需要修復? – shx2 2014-09-22 19:18:30

+0

打開一個窗口,顯示「語法無效」 – Sajid 2014-09-22 19:20:51

回答

0

你想看看fileinput

假設我有這個文件:

$ cat bobsDetail.txt 
File 'Bob's Detail' 

我可以寫一個簡單的循環,這將是1)工藝標準輸入或2)打開的文件名並處理內容:

#!/usr/bin/python 

import fileinput 
for line in fileinput.input(): 
    print line 

現在使可執行文件(Unix):

$ chmod +x fi.py 

然後你就可以處理任何方式,提出:

$ ./fi.py bobsDetail.txt 
File 'Bob's Detail' 

或者,

$ cat bobsDetail.txt | ./fi.py 
File 'Bob's Detail' 

然後你就可以識別標準輸入VS文件:

for line in fileinput.input(): 
    if fileinput.isfirstline(): 
     if fileinput.isstdin(): 
      print 'stdin' 
     else: 
      print fileinput.filename()  

    print line 

從檔案

$ ./fi.py bobsDetail.txt 
bobsDetail.txt 
File 'Bob's Detail' 

從標準輸入:

$ cat bobsDetail.txt | ./fi.py 
stdin 
File 'Bob's Detail' 
0

首先你需要了解的代碼之前,你可以改變它的文件名bobsDetail.txt。如果你瞭解代碼,你的問題將變得非常簡單。 代碼執行兩次打開和讀取文件內容的相同過程,首先使用argv(變量變量),然後使用raw_input()。也許,代碼來自的書想告訴你如何使用兩種方式讀取文件的內容 - argvraw_input()。 將代碼粘貼到記事本++中,並將其保存爲txtcode.py。創建一個文本文件,鍵入:

我學習如何閱讀使用的argv文件的raw_input和

保存這個文本文件作爲OpenMe.txt並將其保存在與同一個文件夾python腳本textcode.py。該程序所做的是使用textcode.py腳本來打開並讀取OpenMe.txt的內容。換句話說,在文本中的腳本。PY是用來打開我學習瞭如何使用argv的讀取文件內容

的raw_input和

文件OpenMe.txt中發現的。 運行程序打開powershell(我假設你正在使用Windows)。將目錄更改爲您保存您的textcode.pyOpenMe.txt文件並運行該腳本:

*python textcode.py OpenMe.txt* 
What you need to type and what will be displayed is shown below: 
*$ python ex15.py OpenMe.txt 
Here's your file 'OpenMe.txt': 
I am studying how to read files using argv and raw_input. 
Type the filename again: 
> OpenMe.txt 
I am studying how to read files using argv and raw_input* 

一旦你明白這一點,那麼你可以簡單地改變命名OpenMe.txt文件到您的首選文件bobsDetail.txt要顯示您的文件必須有一些內容,否則它會出現爲空,你可能會認爲該程序無法正常工作。 請注意,您需要了解如何運行該程序,並且我已經使用了最簡單和最有效的方式來學習如何編程 - 使用純文本編輯器,如記事本++和Powershell(或簡稱爲cmd)。