次のコードを使用すると、出力フォーマットが非常に悪くなります。主な出力の問題の1つは/ nです。/nは実際のテキストファイルには表示されませんが、Pythonスクリプトから見ると、すべて「フォーマットされていません」。フォーマットが不適切な出力を取得する(Python)
コード:
def start():
command = raw_input('''
1) Add
2) Look Up
3) See All
4) Delete Entry
''')
if command=="1":
add()
if command=="2":
look_up()
def add():
name = raw_input("What is your name?")
age = str(raw_input("How old are you?"))
salary = raw_input("Enter Salary:")
state = raw_input("State:")
fileObj = open("employees.txt","a")
fileObj.write("Name:"+name+"\n")
fileObj.write('--------------------------\n')
fileObj.write("Age:"+age+"\n")
fileObj.write("Salary:"+salary+"\n")
fileObj.write("State:"+state+"\n")
fileObj.write("--------------------------\n")
fileObj.write("\n\n")
fileObj.close()
print "The following text has been saved:"
print "Name:"+name
print "Age:"+age
print "Salary:"+salary
print "State:"+state
print "Note: This text was assigned to one line."
start()
def look_up():
fileObj = open("employees.txt")
line = fileObj.readlines()
print line
start()
start()
読み取り及び印刷の結果である:
[ 'の\ n'、 '名称:ノア\ n' は、「--------- ----------------- \ n '、'年齢:16 \ n '、'給与:20000 \ n '、'州:NC \ n '、' ---- ---------------------- \ n '、' \ n '、' \ n '、'名前:Daniel Rainey \ n '、' ---- ---------------------- \ n '、'年齢:18 \ n '、'給与:200000 \ n '、'州:NC \ n '、 '-------------------------- \ n'、 '\ n'、 '\ n'、 '名前:fdadas \ n'、 ' -------------------------- \ n '、'年齢:343 \ n '、'給与:344433 \ n '、'州:NC \ n '、' -------------------------- \ n '、' \ n '、' \ n ']
開かれたすべてのファイルを常に.close()で閉じる必要があります。そうでない場合は、ガベージコレクタに応じて、ファイルが更新されていないような、あまり目立たないバグが表示されます。 – vz0