Jerry~Mouse 发表于 2022-3-24 21:17:10

关于文件打开的问题

f = open('test.txt','a+')   #问题在这里的a+
for each_line in f:
    print(each_line)

f.close()

这个test.txt里面是有内容的,但是为什么用‘a+’读取不出来而用‘r’就可以读取出来呢?

isdkz 发表于 2022-3-24 21:22:33

因为以 'a+' 模式打开文件指针是位于文件末尾的,所以读不出数据,

你得把文件指针移到开头:


f = open('test.txt','a+')
f.seek(0)         # 把指针移到文件开头
for each_line in f:
    print(each_line)

f.close()

Jerry~Mouse 发表于 2022-3-24 21:27:01

isdkz 发表于 2022-3-24 21:22
因为以 'a+' 模式打开文件指针是位于文件末尾的,所以读不出数据,

你得把文件指针移到开头:

哦~明白了 我再追问一个问题,既然‘+’,是可读写模式,是不是我可以用‘r+’来代替‘w’和‘r’呢?

isdkz 发表于 2022-3-24 21:34:45

Jerry~Mouse 发表于 2022-3-24 21:27
哦~明白了 我再追问一个问题,既然‘+’,是可读写模式,是不是我可以用‘r+’来代替‘w’和‘r’呢?

r+:可读写,指针位于文件开头,(w+,可读写,指针位于文件开头,不过会清空原文件数据,这时候读没有多大意义)
w: 可写不可读,指针位于文件开头,
r: 可读不可写,指针位于文件开头

他们的区别,能不能替代看应用场景

Jerry~Mouse 发表于 2022-3-24 21:40:01

isdkz 发表于 2022-3-24 21:34
r+:可读写,指针位于文件开头,(w+,可读写,指针位于文件开头,不过会清空原文件数据,这时候读没有多 ...

好的 明白了 谢谢指点
页: [1]
查看完整版本: 关于文件打开的问题