程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如果文件在打开时被编辑会发生什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如果文件在打开时被编辑会发生什么??

开发过程中遇到如果文件在打开时被编辑会发生什么?的问题如何解决?下面主要结合日常开发的经验,给出你关于如果文件在打开时被编辑会发生什么?的解决方法建议,希望对你解决如果文件在打开时被编辑会发生什么?有所启发或帮助;

如果我有一个文件 test.txt,我像这样打开它:

import time
with open("test.txt","r") as f:
    time.sleep(30)
    print(f.readlines())

我在 Python 打开文件和读取行之间使用文本编辑器编辑文件,我应该期待什么?

我应该看到打开文件之前的行,还是编辑后的文件的新行,还是不确定我会看到什么?

(我将自己运行这些测试,但我想我会在这里问,以防人们有更多信息,并且我可以分享我的结果。)

编辑: 通过一些有用的评论和测试,我认为我对正在发生的事情有一个相当不错的理解,但更深入的理解将不胜感激。例如,我可以 readlines 正在运行附近编辑一个非常大的文件并让它接受更改吗?还是文件被锁定在每个单独的函数内部?

解决方法

看起来文件是从文件对象的当前位置读取的。

您使用 void getMyDiStricts(newValue,int i) async { DiStrictResponse joinResponse = await getDiStrict(newvalue); if (joinResponse != null) { setState(() { mydis = joinResponse.data; _isLoading = false; }); } else { setState(() { _isLoading = false; }); } } 打开文件时,Python 会准备好读取文件,并将文件对象的当前位置放在索引 0 处。

实际读取文件时,Python 将从该文件位置读取文件的最新版本。

我为支持这一点而进行的测试如下:

我跑了

with open("read_file_test.txt","r") as f:

并在 9 秒标记处保存新编辑的文件。打印到屏幕上的是文件的新编辑文本。

然后,根据@Kraigolas 的建议,我跑了:

import time
with open("read_file_test.txt","r") as f:
    # gives me a countdown timer
    for i in range(10):
        print(i)
        time.sleep(1)
    print(f.readlines())

当它启动时,它打印文件的原始内容。然后我在倒计时期间向文件添加了一个新行。倒计时结束后,它只打印出添加的新行,没有其他内容。

这让我相信文件对象将存储它在文件中所在位置的字符位置,并始终从文件的最新版本中的该位置读取。

但是,如果有人知道更多细节或找到与此相反的证据,我很乐意听到!

大佬总结

以上是大佬教程为你收集整理的如果文件在打开时被编辑会发生什么?全部内容,希望文章能够帮你解决如果文件在打开时被编辑会发生什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: