2016-12-10 18 views
0

これは、すべての文字を出力し読み取りと、複数のファイルが

with infile as f : 
    lines = f.readlines() 

new_line = " " 

for line in lines: 
    new_line = ''.join(line).replace('*',letter.upper()) 
    new_line = new_line.replace(':',letter.lower()) 
    print(new_line) 

ありません私が入力したもの

with infile as f : 
    lines = f.readlines() 

new_line = " " 

for line in lines: 
    new_line = ''.join(line).replace('*',letter.upper()) 
    new_line = new_line.replace(':',letter.lower()) 
    outfile.write(new_line) 

入力された単語の最後の文字のみが表示されます。

folder = r"C:\Users\sarah\Documents\a CPS 111\Bonus PA\stars\stars" 
# os.listdir(folder) returns a list of files in folder 
file_list = os.listdir(folder) 
letter_art = {} 

word = str(input("Please input a letter: ")) 
word = word.upper() 

for fname in file_list: 

    letter_extension_list = fname.split(".") 

for letter in word: 
    key = letter 
    value = letter_extension_list[1] 
    value = "%s."%(key) + value 
    letter_art[key] = value 

    fname = "\\".join([folder, value]) 

    infile = open(fname, "r") 
    outfile = open("word_art.txt", "w") 


    with infile as f : 
     lines = f.readlines() 

    new_line = " " 

    for line in lines: 
     new_line = ''.join(line).replace('*',letter.upper()) 
     new_line = new_line.replace(':',letter.lower()) 

     print(new_line) 
     outfile.write(new_line) 






infile.close() 
outfile.close() 

これは現在作業しているコードです。私はtxtファイルからシンボルを取り入れ、ユーザーが出力ファイルループの前にはなく、その中にオープン

+0

各繰り返しで出力ファイルを開いたり閉じたりしていますか? – TigerhawkT3

+0

どうしてあなたは '''join(line) ''をやっていますか?私が見ることから、それはすでに文字列でなければならない。 – TigerhawkT3

+0

私が疑っていたように、あなたは確かに各繰り返しでファイルを開いています。あなたは 'for letter in word: 'を持っていて、そのループの中に' outfile = open( "word_art.txt"、 "w") 'があり、実行されるたびにファイルを開き直して拭きます。 – TigerhawkT3

答えて

0

をinputed内容に応じcoornading手紙にそれらを変更しています:これは働いていた

outfile = open("word_art.txt", "w") 
for letter in word: 
+0

これは最大の問題を修正しました。縦に反対の2つのファイルを隣に印刷する方法はありますか(これは私が最終的に達成しようとしているものです)。最初の文字の最後の行と2番目の文字の最初の行が一緒に@ TigerhawkT3に印刷されているためです。 –

+0

私はoutfile.write( "\ n")をfor行の行の外側に追加し、最初の問題を修正しました。しかし、手紙を縦に反対にする方法がありますか? @ TigerhawkT3。 –

+0

私は自分のコードと質問を更新しました!私の最初の問題であなたの助けをありがとう! @ TigerhawkT3。 –

0
with open("test.txt",'r') as f : 
lines = f.readlines() 

with open('out.txt','w') as outfile: 
    for line in lines: 
     new_line = line.replace('*',letter.upper()) 
     new_line = new_line.replace(':',letter.lower()) 
     outfile.write(new_line) 

私のために。

編集: TigerhawkT3は正しいです。私はあなたの完全なコードをチェックアウトし、前回の変更を破棄するたびにループ内でファイルを何度も開いていました。

関連する問題