关于#python#的问题:‘learning_python.txt’在此文件的相同目录里,第二种打开文件方式为什么不行


file_path = '第十章\\练习10-1\\learning_python.txt'

with open(file_path) as file_object:
    for line in file_object:
        print(line.strip())

with open('learning_python.txt')  as file_object1:
    for line in file_object1:
        print(line.strip())

img

img

‘learning_python.txt’在此文件的相同目录里,第二种打开文件方式为什么不行。

如果第一种方式能成功运行,说明当前python的运行目录是C:\User\19681\Destop\python练习,可以在文件中导入os模块,打印os.path.abspath(os.curdir)看一下

相对路径错误。
使用相对路径时,是相对于当前执行程序的目录。所以如果代码文件不在learning_python.txt同一目录,就会出现文件未找到的错误。

路径有问题,你直接copy reference试一下

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7801228
  • 这篇博客你也可以参考下:怎样使用Python导入.txt的文本文件
  • 您还可以看一下 裴帅帅老师的Python入门编程100例课程中的 Python实现批量Txt文件的合并小节, 巩固相关知识点
  • 除此之外, 这篇博客: python写入txt文件时的覆盖和追加中的 python写入文件时的覆盖和追加 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    在使用Python进行txt文件的读写时,当打开文件后,首先用read()对文件的内容读取,然后再用write()写入,这时发现虽然是用“r+”模式打开,按道理是应该覆盖的,但是却出现了追加的情况。
    这是因为在使用read后,文档的指针已经指向了文本最后,而write写入的时候是以指针为起始,因此就产生了追加的效果。
    如果想要覆盖,需要先seek(0),然后使用truncate()清除后,即可实现重新覆盖写入


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^