如何将屏幕输出保存到文本文件中



所以我需要创建一个脚本并将信息保存到一个文本文件中,下面是我所做的:

import platform
def bios_version():
uname_result = platform.uname()
pl = {}
pl['BIOS version'] = uname_result.version
for a, b in pl.items():
print(a, ":", b)
#The def is working perfectly but I don't know how to save the file.
print(bios_version())
save_path = 'D:/'
name_of_file = input("What is the name of the file: ")
completeName = os.path.join(save_path, name_of_file+".txt")
f = open(completeName, "w")
f.write(bios_version())
f.close

所以它返回:

f.write(bios_version())
TypeError: write() argument must be str, not None"

尝试以下代码:

  • 我不明白为什么要使用循环以及为什么要将版本详细信息存储在字典中。若只有一个值,那个么只需将其存储在变量中,然后直接返回值并写入文件

代码

import platform
import os
def bios_version():
uname_result = platform.uname()
pl = f"BIOS version: {uname_result.version}"
return pl
save_path = 'D:/'
name_of_file = input("What is the name of the file: ")
completeName = os.path.join(save_path, name_of_file+".txt")
f = open(completeName, "w")
f.write(bios_version())
f.close

输出:

BIOS version: <<Your version detail>>

考虑到其他答案,这里有一个替代方案:

import platform
import os
def write_bios_version(file_name = None):
pl = {}
pl['BIOS version'] = platform.uname().version
with open(file_name, 'w') as f:
for a, b in pl.items():
print(a, ":", b, file=f)
save_path = 'D:/'
name_of_file = input("What is the name of the file: ")
complete_name = os.path.join(save_path, name_of_file+".txt")
write_bios_version(complete_name)

最新更新