4

私はリストをいじり、リストからファイルを作成してきました。以下は正常に動作しますが、これを行うためのより良い、よりクリーンな方法があると確信しています。ループの概念は理解していますが、自分がしていることに合わせて改造できる具体的な例が見つかりません。私の項目リストを f.write コードで 1 回だけループさせて、目的のファイルを生成する正しい方向を教えてください。

    items = [ "one", "two", "three" ]

    f = open (items[0] + " hello_world.txt", "w")
    f.write("This is my first line of code")
    f.write("\nThis is my second line of code with " + items[0] + " the first item in my list")
    f.write ("\nAnd this is my last line of code")

    f = open (items[1] + " hello_world.txt", "w")
    f.write("This is my first line of code")
    f.write("\nThis is my second line of code with " + items[1] + " the first item in my list")
    f.write ("\nAnd this is my last line of code")

    f = open (items[2] + " hello_world.txt", "w")
    f.write("This is my first line of code")
    f.write("\nThis is my second line of code with " + items[2] + " the first item in my list")
    f.write ("\nAnd this is my last line of code")
    f.close()
4

3 に答える 3

11

forこのようにループとwithステートメントを使用できます。ステートメントを使用する利点はwith、ファイルを明示的に閉じたり、例外が発生した場合を心配したりする必要がないことです。

items = ["one", "two", "three"]

for item in items:
    with open("{}hello_world.txt".format(item), "w") as f:
        f.write("This is my first line of code")
        f.write("\nThis is my second line of code with {} the first item in my list".format(item))
        f.write("\nAnd this is my last line of code")
于 2013-11-11T10:34:12.637 に答える
2

通常の for ループ - 最適化あり。

データ:

items = ["one", "two", "three" ]
content = "This is the first line of code\nThis is my second line of code with %s the first item in my list\nAnd this is my last line of code"

ループ:

for item in items:
    with open("%s_hello_world.txt" % item, "w") as f:
        f.write(content % item)
于 2013-11-11T10:36:32.403 に答える
1

forループを使用する必要があります

for item in  [ "one", "two", "three" ]:
    f = open (item + " hello_world.txt", "w")
    f.write("This is my first line of code")
    f.write("\nThis is my second line of code with " + item  + " the first item in my list")
    f.write ("\nAnd this is my last line of code")
    f.close()
于 2013-11-11T10:34:18.937 に答える