先用Notepad++打下列的文件,
另存為ex20_sample.txt
This is Line 1 This is Line 2 This is Line 3
再用Notepad++打下列的程式碼,
另存為ex20.py. 我附上中文注釋方便好讀.
# -*- coding: UTF-8 -*-
#sys模組導入argv, 付與argv兩個變量script, input_file
from sys import argv
script, input_file = argv
#定義函數print_all, 讓它讀取文件內容
#並印出來
def print_all (f):
print (f.read())
#定義函數 rewind, 讓讀取點回到文件開頭
def rewind (f):
f.seek (0)
#定義函數peint_a_line, 給與兩個變量, 一個是line_count, 另一個是只讀取文件某一行.
#並印出來
def print_a_line (line_count, f):
print (line_count, f.readline())
#定義current_file為打開argv第二變量所定義的文件名
current_file = open (input_file)
#執行函數print_all: 即印出來argv第二變量所定義的文件名
print ("First let's print the whole file:\n")
print_all (current_file)
#執行函數rewind: 讓讀取點回到argv第二變量所定義的文件名的文件開頭
print ("Now let's rewind, kind of like a type.")
rewind (current_file)
print ("Let's print three lines:")
#印出文件第一行內容
current_line = 1
print_a_line (current_line, current_file)
#印出文件第二行內容
current_line = current_line + 1
print_a_line (current_line, current_file)
##印出文件第三行內容
current_line = current_line + 1
print_a_line (current_line, current_file)
然後用Windows的cmd, 執行python打開它.
C:\Windows\System32>cd C:\Users\Peter\Desktop\Python\LP3THW C:\Users\Peter\Desktop\Python\LP3THW>python .\ex20.py ex20_sample.txt First let's print the whole file: This is Line 1 This is Line 2 This is Line 3 Now let's rewind, kind of like a type. Let's print three lines: 1 This is Line 1 2 This is Line 2 3 This is Line 3 C:\Users\Peter\Desktop\Python\LP3THW>
完成
然後我修改一下,
將Line 20: 修改一下, 印出文字, 因為readline自帶\n, 加上end="". 讓他不空行
# -*- coding: UTF-8 -*-
#sys模組導入argv, 付與argv兩個變量script, input_file
from sys import argv
script, input_file = argv
#定義函數print_all, 讓它讀取文件內容
#並印出來
def print_all (f):
print (f.read())
#定義函數 rewind, 讓讀取點回到文件開頭
def rewind (f):
f.seek (0)
#定義函數peint_a_line, 給與兩個變量, 一個是line_count, 另一個是只讀取文件某一行.
#並印出來
#修改一下, 印出文字
#因為readline自帶\n, 加上end="". 讓他不空行
def print_a_line (line_count, f):
print ("Line", line_count, ": ", f.readline(), end="")
#定義current_file為打開argv第二變量所定義的文件名
current_file = open (input_file)
#執行函數print_all: 即印出來argv第二變量所定義的文件名
print ("First let's print the whole file:\n")
print_all (current_file)
#執行函數rewind: 讓讀取點回到argv第二變量所定義的文件名的文件開頭
print ("Now let's rewind, kind of like a type.")
rewind (current_file)
print ("Let's print three lines:")
#印出文件第一行內容
current_line = 1
print_a_line (current_line, current_file)
#印出文件第二行內容
current_line = current_line + 1
print_a_line (current_line, current_file)
##印出文件第三行內容
current_line = current_line + 1
print_a_line (current_line, current_file)
結果可以看到:
C:\Users\Peter\Desktop\Python\LP3THW>python .\ex20-1.py ex20_sample.txt First let's print the whole file: This is Line 1 This is Line 2 This is Line 3 Now let's rewind, kind of like a type. Let's print three lines: Line 1 : This is Line 1 Line 2 : This is Line 2 Line 3 : This is Line 3 C:\Users\Peter\Desktop\Python\LP3THW>
輸出結果不再空行了.
另外全局變量, 跟函數變量的名字, 最好不一要一樣. 會搞混.
最初發表 / 最後更新: 2018.08.22 / 2018.08.22

0 comments:
張貼留言