How can I use Python 3 to write text to a file in Windows 10
我尝试过的代码是:
1 2 | dtf = open("C:\\Users\\foggi\\Documents\\Fred.txt","w") dtf.write("Hello people") |
这在Android上很好地工作(对文件路径进行适当的更改),但在Windows10下,它会创建一个空文件。我怎样才能克服这个问题?
文件为空的原因是您在打开文件对象之前没有将其关闭。
建议在大多数情况下使用
1 2 | with open("C:\\Users\\foggi\\Documents\\Fred.txt","w") as f: f.write("Hello people") |
。
理论上,文件应该在运行终结器时关闭,但这并不能保证会发生。您需要关闭该文件以将其缓冲区刷新到磁盘,否则您"写入"的数据可能会挂在您的Python脚本的内存中。
确保关闭文件的最佳方法是使用
1 2 | with open("C:\\Users\\foggi\\Documents\\Fred.txt","w") as fp: fp.write("Hello people") |
。
另一个好方法是只使用
1 2 3 | import pathlib path = pathlib.Path("C:\\Users\\foggi\\Documents\\Fred.txt") path.write_text("Hello people") |
。
您也可以手动关闭该文件,但不建议将其作为样式:
1 2 3 | fp = open("C:\\Users\\foggi\\Documents\\Fred.txt","w") fp.write("Hello people") fp.close() |
原因是,
在完成对文件的写入之后,必须关闭该文件。
1 2 3 | dtf = open("C:\\Users\\foggi\\Documents\\Fred.txt","w") dtf.write("Hello people") dtf.close() |
号
或者,最好是:
1 2 | with open("C:\\Users\\foggi\\Documents\\Fred.txt","w") as dtf: dtf.write("Hello people") |
您可以阅读更多关于
如果要查看更改,则需要关闭文件:
我总是使用
1 2 | with open("C:\\Users\\foggi\\Documents\\Fred.txt","w") as fs: fs.write("Hello people") |
。
或者在写完后关闭文件。使用
1 2 3 | dtf = open("C:\\Users\\foggi\\Documents\\Fred.txt","w") dtf.write("Hello people") dtf.close() |
号
1 2 | dtf = open("C:\\Users\\foggi\\Documents\\Fred.txt","a+") dtf.write("Hello people") |
你可以用这个A+来改变