以下3步問正确的程式片段:
#! /usr/bin/python3
‘makeTextFile.py -- create text file‘
import os
def write_file():
"used to write a text file."
ls = os.linesep
#get filename
fname = input("Please input filename:")
while True:
if os.path.exists(fname):
print("Error: ‘%s‘ already exists" % fname)
fname = input("Please input filename:")
else:
break
#get file conent linesOnScreen
all = []
print("\nEnter lines (‘.‘ to quit).\n")
entry = input(‘>‘)
if entry == ‘.‘:
all.append(entry)
try:
fobj = open(fname, ‘w‘)
except IOError as err:
print(‘file open error: {0}‘.format(err))
fobj.writelines([‘%s%s‘ % (x, ls) for x in all])
fobj.close()
print(‘WRITE FILE DONE!‘)
return fname
‘readTextFile.py -- read and display text file.‘
def read_file(filename):
‘used to read a text file.‘
fobj = open(filename, ‘r‘)
else:
for eachLine in fobj:
print(eachLine)
fobj.close()
‘write_and_read_file.py -- write and read text file.‘
import makeTextFile
import readTextFile
if __name__ == ‘__main__‘:
#wrie file
filename = makeTextFile.write_file()
#read file
readTextFile.read_file(filename)
一下為筆者自己所寫:
#! /usr/bin/Python2.7
‘makeTextFile2--create text file‘
ls = os.linesep
#get
fileName = raw_input(‘plz input filename:‘)
while True:
if os.path.exists(fileName)
print(‘file already exists!‘)
else:
fileName = raw_input(‘plz input :‘)
#get content in line
all = []
print(‘\nEnter line(‘.‘ to quit).\n‘)
entry = (‘>‘)
entry.append( )
fobj = open(fileName, ‘)
fileName.writelines(‘%s%s‘ %(x, ls) for x in )
fobj. ()
‘readTextFile2--read text file‘
def read_ ():
try:
fobj = open(fileName, ‘r‘)
except IOError as err:
print (‘read file error:{0}‘.format(err))
else:
for eachLine in fobj:
print(eachLine)
fobj.close()
‘main2—main function’
import makeTextFile.
import readTextFile.py
fileName = makeTextFile.write_file()
readTextFile.read_file(fileName)
注釋寫明白,是fileName
判斷完成之後應該立即提示輸入fileName
如果之前沒有此file則建立,直接break
改為raw_input
If entry==’.’
Break
明顯缺少語句
完全瞎寫
應該是将新的entry添加到all數組中
缺少try except語句
這裡是數組
最後最好有個提示輸入完成,略顯程式完善
因為下面要調用write_file,是以在函數最後要有一個return值
因為需要使用别處傳來的參數,是以定義是需要參數fileName
引用是不需要加字尾
需要主函數
知識詳解及延伸:
這幾段程式中主要是學習了os.linesep的用法及讀寫文本文檔的方法,期間出現的問題總結及解釋如下:
問題1.os.linesep
os.linesep字元串給出目前平台使用的行終止符。例如,Windows使用‘\r\n‘,Linux使用‘\n‘而Mac使用‘\r‘。
例: fileappend=open(‘/home/zll/new.txt‘,‘a‘)
fileappend.write(‘zhui jia content‘)
fileappend.write(‘\n‘) //不用\n 如果使用os.linesep
while True:
aline=raw_input("Enter a line(‘.‘ to quit):")
if aline != ".":
fileappend.write(‘%s%s‘ % (aline,os.linesep))
else:
break
fileappend.close()
問題2.
fileName.writelines(‘%s%s‘ %(x, ls) for x in all)這裡應該用數組。
問題3.
如果本函數在其他函數中調用,需要用的傳回值的話,記得最後return。
問題4.
Import時不需要寫檔案字尾的
問題5.
主函數需要if __name__==’__main__’:的!!!