Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python文件读写不工作_Python_File - Fatal编程技术网

Python文件读写不工作

Python文件读写不工作,python,file,Python,File,我正在为Python制作一个游戏,其中有一些代码,可以在我自己运行它时写入一个文件,以避免自己不得不实际玩这个游戏。 我已经编写了代码,用于编写和读取一个工作正常的文件,但是对于cheat.txt文件,打印其内容只返回[] 下面是一个正在发生的事情的简短示例 file = open("E:\\ICT and Computer Science\\Python\\GCSE\\cheat.txt", "a+") text = file.readlines() print(text) [] file.c

我正在为Python制作一个游戏,其中有一些代码,可以在我自己运行它时写入一个文件,以避免自己不得不实际玩这个游戏。 我已经编写了代码,用于编写和读取一个工作正常的文件,但是对于cheat.txt文件,打印其内容只返回
[]

下面是一个正在发生的事情的简短示例

file = open("E:\\ICT and Computer Science\\Python\\GCSE\\cheat.txt", "a+")
text = file.readlines()
print(text)
[]
file.close()



file = open("E:\\ICT and Computer Science\\Python\\GCSE\\cheat.txt", "r+")
text = file.readlines()
print(text)
['xcfghujiosdfnonoooooowhello']
现在在网络机器上显示a+不工作,但r+工作。我完全理解每种模式的功能,但有人能提出为什么在+模式下它不能读取(或写入,返回参数的长度)吗

注意+是必需的模式,因为它需要附加到文件中


编辑:当我键入
file.write()
时,帮助您应用参数的小框显示为“参见源代码或文档”。

看看打开模式(python使用与C
fopen
相同的模式)

您可以在
'a+'
模式的描述中清楚地看到流位于文件的末尾。所以,在这一点上,若您执行读取操作,它将从当前位置(文件的末尾)继续读取,从而输出

在这种情况下,要获得正确的输出,可以使用如下函数:

with open("E:\\ICT and Computer Science\\Python\\GCSE\\cheat.txt", "a+") as file:
    file.seek(0)
    text = file.readlines()
    print(text)

['actual output']

看看打开模式(python使用与C
fopen
相同的模式)

您可以在
'a+'
模式的描述中清楚地看到流位于文件的末尾。所以,在这一点上,若您执行读取操作,它将从当前位置(文件的末尾)继续读取,从而输出

在这种情况下,要获得正确的输出,可以使用如下函数:

with open("E:\\ICT and Computer Science\\Python\\GCSE\\cheat.txt", "a+") as file:
    file.seek(0)
    text = file.readlines()
    print(text)

['actual output']

这是因为文件描述符(fd)位于文件末尾, 如果需要将fd移动到文件的开头

import os
file = open("E:\\ICT and Computer Science\\Python\\GCSE\\cheat.txt", "a+")
os.lseek(file, 0, 0)
text = file.readlines()
print(text)
['xcfghujiosdfnonoooooowhello']

这是因为文件描述符(fd)位于文件末尾, 如果需要将fd移动到文件的开头

import os
file = open("E:\\ICT and Computer Science\\Python\\GCSE\\cheat.txt", "a+")
os.lseek(file, 0, 0)
text = file.readlines()
print(text)
['xcfghujiosdfnonoooooowhello']

在a+的情况下,读和写可以分别有两个功能 要在file.readlines()之前读取,您应该使用file.seek(0)在文件开头定位文件描述符

代码:

file = open("E:\\ICT and Computer Science\\Python\\GCSE\\cheat.txt", "a+")
file.seek(0)
text = file.readlines()
print(text)
file.close()

它将完美地工作

在a+的情况下,读和写可以分别有两个功能 要在file.readlines()之前读取,您应该使用file.seek(0)在文件开头定位文件描述符

代码:

file = open("E:\\ICT and Computer Science\\Python\\GCSE\\cheat.txt", "a+")
file.seek(0)
text = file.readlines()
print(text)
file.close()

它将完美地工作

尽管如此,当尝试写入文件时,shell返回参数长度。尽管如此,当尝试写入文件时,shell返回参数长度。