Python Print String To Text File

2018-12-31 23:32发布

问题:

I\'m using Python to open a text document:

text_file = open(\"Output.txt\", \"w\")

text_file.write(\"Purchase Amount: \" \'TotalAmount\')

text_file.close()

I want to enter the string called \"TotalAmount\" into the text document. Can someone please let me know how to do this?

回答1:

text_file = open(\"Output.txt\", \"w\")
text_file.write(\"Purchase Amount: %s\" % TotalAmount)
text_file.close()

If you use a context manager, the file is closed automatically for you

with open(\"Output.txt\", \"w\") as text_file:
    text_file.write(\"Purchase Amount: %s\" % TotalAmount)

If you\'re using Python2.6 or higher, it\'s preferred to use str.format()

with open(\"Output.txt\", \"w\") as text_file:
    text_file.write(\"Purchase Amount: {0}\".format(TotalAmount))

For python2.7 and higher you can use {} instead of {0}

In Python3, there is an optional file parameter to the print function

with open(\"Output.txt\", \"w\") as text_file:
    print(\"Purchase Amount: {}\".format(TotalAmount), file=text_file)

Python3.6 introduced f-strings for another alternative

with open(\"Output.txt\", \"w\") as text_file:
    print(f\"Purchase Amount: {TotalAmount}\", file=text_file)


回答2:

In case you want to pass multiple arguments you can use a tuple

price = 33.3
with open(\"Output.txt\", \"w\") as text_file:
    text_file.write(\"Purchase Amount: %s price %f\" % (TotalAmount, price))

More: Print multiple arguments in python



回答3:

If you are using numpy, printing a single (or multiply) strings to a file can be done with just one line:

numpy.savetxt(\'Output.txt\', [\"Purchase Amount: %s\" % TotalAmount], fmt=\'%s\')


回答4:

If you are using Python3.

then you can use Print Function :

your_data = {\"Purchase Amount\": \'TotalAmount\'}
print(your_data,  file=open(\'D:\\log.txt\', \'w\'))

For python2

this is the example of Python Print String To Text File

def my_func():
    \"\"\"
    this function return some value
    :return:
    \"\"\"
    return 25.256


def write_file(data):
    \"\"\"
    this function write data to file
    :param data:
    :return:
    \"\"\"
    file_name = r\'D:\\log.txt\'
    with open(file_name, \'w\') as x_file:
        x_file.write(\'{} TotalAmount\'.format(data))


def run():
    data = my_func()
    write_file(data)


run()


回答5:

With using pathlib module, indentation isn\'t needed.

import pathlib
pathlib.Path(\"output.txt\").write_text(\"Purchase Amount: {}\" .format(TotalAmount))

As of python 3.6, f-strings is available.

pathlib.Path(\"output.txt\").write_text(f\"Purchase Amount: {TotalAmount}\")


回答6:

Easier way to do in Linux and Python,

import os
string_input = \"Hello World\"
os.system(\"echo %s > output_file.txt\" %string_input)

(OR)

import os
string_input = \"Hello World\"
os.system(\"echo %s | tee output_file.txt\" %string_input)


回答7:

I think the easier way to do that is via appending the text you want to set to the file using

open(\'file_name\',\'a\')

here is an example for that

file=open(\'file\',\'a\')
file.write(\"Purchase Amount: \" \'TotalAmount\')
file.close()

\"a\" refer to append mood , it will append the text you want to write to the end of the text in the your file