python从变量中读取数据并写入一个文件(无打印),我希望稍后将其用作备份数据

python从变量中读取数据并写入一个文件(无打印),我希望稍后将其用作备份数据,python,Python,我是python和编程新手。开始为我的项目尝试一些东西 我的问题如下 p=subprocess.Popen(Some command which gives me output],stdout=subprocess.PIPE,stderr=subprocess.STDOUT) p.wait() content=p.stdout.readlines() for line in content: filedata=line.lstrip().rstrip() ----->我希望此文件数据输

我是python和编程新手。开始为我的项目尝试一些东西

我的问题如下

p=subprocess.Popen(Some command which gives me output],stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
p.wait()
content=p.stdout.readlines()
for line in content:
    filedata=line.lstrip().rstrip()
----->我希望此文件数据输出打开并保存到文件中。

如果我使用打印文件数据,它会正常工作并提供我想要的内容,但我不想打印,希望以后使用此数据


提前感谢。

您可以通过以下两种方式来实现

选项一使用了更传统的文件处理方式,我使用了with语句,使用with语句您不必担心关闭文件

选项二,它使用pathlib模块,这是3.4版中的新选项(我建议使用此选项)

somefile.txt是文件系统中的完整文件路径。我还包括了文档链接,我强烈建议您浏览这些链接

选择一

选项二-适用于Python 3.4或更高版本


您可以通过以下两种方式实现

选项一使用了更传统的文件处理方式,我使用了with语句,使用with语句您不必担心关闭文件

选项二,它使用pathlib模块,这是3.4版中的新选项(我建议使用此选项)

somefile.txt是文件系统中的完整文件路径。我还包括了文档链接,我强烈建议您浏览这些链接

选择一

选项二-适用于Python 3.4或更高版本


请花一点时间查看您的代码,并可能向我们提供您要保存到的文件类型?我希望它是文本文件,很抱歉格式化。我正试图正确复制,但无法按预期工作p=subprocess.Popen(cmd输出),stdout=subprocess.PIPE,stderr=subprocess.stdout)p.wait()content=p.stdout.readlines()用于内容中的行:filedata=line.lstrip().rstrip()++++++++++++++++++++++++++++++++++++++filedata需要写入文本文件。请花点时间阅读代码,并可能向我们提供您想要保存的文件类型?我希望它是文本文件,很抱歉格式化。我正试图正确复制,但无法按预期工作p=subprocess.Popen(cmd output),stdout=subprocess.PIPE,stderr=subprocess.stdout)p.wait()content=p.stdout.readlines()用于内容中的行:filedata=line.lstrip().rstrip()+。。现在它起作用了。。不确定我之前犯了什么错误。。再次感谢,不过我还有一个问题。打印时数据格式正确,但输出到文件时格式不正确。您使用了哪个选项?好的,我假设,您希望每次都在换行符上写入数据。如果这是格式问题,请将file.write(filedata)更改为file.write(filedata+'\n')。我已经相应地更新了答案。是的。我这样做了,但一般来说,当我们打印时,输出是正确的,并且应该以相同的方式转储到文件中。。也许我错了。此外,如果我使用“w”而不是“a”,那么数据也不会转储到文件中。您使用的是python内置函数。因此,它只需添加您指定的任何内容,即,如果您添加“abc”,并且在下一个循环计数器中添加“xyz”,它将以“abc”+“xyz”的形式写入文件。因此,您需要指定您想要的“abc\n”。所以,下一个内容被添加到一个文件中的换行符中。你好,Sulabh,我也尝试过同样的内容,但在前面它无法工作。。现在它起作用了。。不确定我之前犯了什么错误。。再次感谢,不过我还有一个问题。打印时数据格式正确,但输出到文件时格式不正确。您使用了哪个选项?好的,我假设,您希望每次都在换行符上写入数据。如果这是格式问题,请将file.write(filedata)更改为file.write(filedata+'\n')。我已经相应地更新了答案。是的。我这样做了,但一般来说,当我们打印时,输出是正确的,并且应该以相同的方式转储到文件中。。也许我错了。此外,如果我使用“w”而不是“a”,那么数据也不会转储到文件中。您使用的是python内置函数。因此,它只需添加您指定的任何内容,即,如果您添加“abc”,并且在下一个循环计数器中添加“xyz”,它将以“abc”+“xyz”的形式写入文件。因此,您需要指定您想要的“abc\n”。因此,下一个内容将添加到文件中的换行符中。
p=subprocess.Popen(Some command which gives me output],stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
p.wait()
content=p.stdout.readlines()
for line in content:
    filedata=line.lstrip().rstrip()
    with open('somefile.txt', 'a') as file:
        file.write(filedata + '\n')
import pathlib 
p=subprocess.Popen(Some command which gives me output],stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
p.wait()
content=p.stdout.readlines()
for line in content:
    filedata=line.lstrip().rstrip()
    pathlib.Path('somefile.txt').write_text(filedata + '\n')