2011-01-24 9 views
0

次のコードを使用すると、出力フォーマットが非常に悪くなります。主な出力の問題の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 ']

+0

開かれたすべてのファイルを常に.close()で閉じる必要があります。そうでない場合は、ガベージコレクタに応じて、ファイルが更新されていないような、あまり目立たないバグが表示されます。 – vz0

答えて

3
print line 

listを印刷しているため、要素が印刷されます。

は、それを反復してから印刷してみてください。

for ele in line: 
    print ele 
+0

ありがとうございました! –

1

.read()代わりの.readlines()をお試しください:

def look_up(): 
    fileObj = open("employees.txt") 
    contents = fileObj.read() 
    print contents 
    start() 

readlines()は、リストとして単一の文字列としてread()をファイルの行を読み取ります。

+0

これを試しても何も出力されません。 –

+1

ファイルが空です。 –

関連する問題