Python:逐行将文本写入文件

时间:2016-11-07 20:36:25

标签: python file

我正在尝试将一些文字写入文件,这就是我尝试的内容:

text ="Lorem Ipsum is simply dummy text of the printing and typesetting " \
                  "industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s," \
                  " when an unknown printer took a galley of type and scrambled it to make a type specimen book."
target = open("file", 'wb')
target.writelines(text)

我得到一个空文件。 我怎么能这样做?

4 个答案:

答案 0 :(得分:4)

这是打印到txt文件的方法:

file = open("Exported.txt", "w")
file.write("Text to write to file")
file.close() #This close() is important

另一种方法是:

with open('Exported.txt', 'w') as file:
   file.write("Text to write to file")

这是我编写txt文件的程序:

import os.path

def start():

    print("What do you want to do?")
    print("    Type a to write a file")
    print("    Type b to read a file")
    choice = input("            -")
    if choice == "a":
        create()
    elif choice == "b":
        read()
    else:
        print("Incorrect spelling of a or b\n\n")
        start()


def create():

    print()
    filename = input("What do you want the file to be called?\n")
    if os.path.isfile(filename):
        print("This file already exists")
        print("Are you sure you would like to overwrite?")
        overwrite = input("y or n")
        if overwrite == "y":
            print("File has been overwritten")
            write(filename)
        else:
            print("I will restart the program for you")
    elif not os.path.isfile(filename):
        print("The file has not yet been created")
        write(filename)
    else:
        print("Error")





def write(filename):
    print()
    print("What would you like the word to end writing to be?")
    keyword = input()
    print("What would you like in your file?")
    text = ""
    filename = open(filename, 'w')
    while text != keyword:
        filename.write(text)
        filename.write("\n")
        text = input()


def read():
    print()
    print("You are now in the reading area")
    filename = input("Please enter your file name:     -")
    if os.path.isfile(filename):
        filename = open(filename, 'r')
        print(filename.read())
    elif not os.path.isfile(filename):
        print("The file does not exist\n\n")
        start()
    else:
        print("Error")


start()

答案 1 :(得分:1)

writelines需要一个可迭代的(例如列表)行,所以不要使用它。您需要关闭文件以保存更改,最好使用with语句:

with open("file", 'wb') as target:
    target.write(text)

答案 2 :(得分:1)

您提供的代码会生成一个名为file的文件,其中包含所需的行。也许你打算把它保存为“file.txt”。此外,'b'标志中的'wb'告诉代码以二进制模式写入文件(更多信息here)。如果您希望文件可读,请尝试使用'w'

最后,最佳做法是在访问文件时使用with语句

text ="Lorem Ipsum is simply dummy text of the printing and typesetting " \
              "industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s," \
              " when an unknown printer took a galley of type and scrambled it to make a type specimen book."
with open("file.txt", 'w') as f:
    f.write(text)

答案 3 :(得分:1)

通过这种方式,您应该直接关闭文件:

target = open("filename.txt", 'w')
target.writelines(text)
target.close()

通过这种方式,文件在with完成执行后的缩进块之后关闭:

with open("filename.txt", "w") as fh:
    fh.write(text)

更多信息: