Python 为什么我会得到一个被截断的.txt文件

Python 为什么我会得到一个被截断的.txt文件,python,Python,我试图生成一个包含随机数短列表的文件。每次运行这个代码,我得到一个文件,其中列表被截断,通常在一个数字中间。我在用PyCharm import random def generate_test(l, r): lst = [] for x in range(1,l): lst = lst + [random.randrange(0, r)] return lst test = generate_test(100, 10**12) test_file = o

我试图生成一个包含随机数短列表的文件。每次运行这个代码,我得到一个文件,其中列表被截断,通常在一个数字中间。我在用PyCharm

import random

def generate_test(l, r):
    lst = []
    for x in range(1,l):
        lst = lst + [random.randrange(0, r)]
    return lst
test = generate_test(100, 10**12)
test_file = open("test.txt", "wb")
test_file = open("test.txt", "r+")
test_file.write(str(test))

您没有正确创建文件,这可能是一个更干净的代码:

import random

def generate_test(l, r):
    lst = []
    for x in range(1,l):
        lst = lst + [random.randrange(0, r)]
    return lst

test = generate_test(100, 10**12)

with open("test.txt", "w") as output:
    output.write(str(test))

您没有正确创建文件,这可能是一个更干净的代码:

import random

def generate_test(l, r):
    lst = []
    for x in range(1,l):
        lst = lst + [random.randrange(0, r)]
    return lst

test = generate_test(100, 10**12)

with open("test.txt", "w") as output:
    output.write(str(test))

我想提到的几件事是,一旦你打开一个文件,你就会得到这个文件的状态,所以如果你写,你就在那个状态下写,但不能读取新写的数据。因此,不需要在两种(r,w)模式下打开文件。我注意到的最后一件事是,你没有关闭文件

import random

def generate_test(l, r):
    lst = []
    for x in range(1,l):
        lst = lst + [random.randrange(0, r)]
    return lst

test = generate_test(100, 10**12)
print(len(test))   # 99

test_file = open('test.txt', 'w') 
test_file.write(str(test))
test_file.close()
现在读取文件以验证写入的数据

test_file = open('test.txt','r')
data = test_file.read()
print(len(data.split()))   # 99
test_file.close()

我想提到的几件事是,一旦你打开一个文件,你就会得到这个文件的状态,所以如果你写,你就在那个状态下写,但不能读取新写的数据。因此,不需要在两种(r,w)模式下打开文件。我注意到的最后一件事是,你没有关闭文件

import random

def generate_test(l, r):
    lst = []
    for x in range(1,l):
        lst = lst + [random.randrange(0, r)]
    return lst

test = generate_test(100, 10**12)
print(len(test))   # 99

test_file = open('test.txt', 'w') 
test_file.write(str(test))
test_file.close()
现在读取文件以验证写入的数据

test_file = open('test.txt','r')
data = test_file.read()
print(len(data.split()))   # 99
test_file.close()

删除
test\u file=open(“test.txt”、“wb”)
并将下一行模式更改为
a
。我确定我没有,我只是从某个地方复制粘贴了它。我是个彻头彻尾的傻瓜。@cᴏʟᴅsᴘᴇᴇᴅ 所以,test_file=open(“test.txt”,“a”)?然后关闭答案中提到的文件。删除
test_file=open(“test.txt”,“wb”)
,并将下一行模式更改为
a
。我确定我不会从某个地方复制粘贴它。我是个彻头彻尾的傻瓜。@cᴏʟᴅsᴘᴇᴇᴅ 所以,test_file=open(“test.txt”,“a”)?然后关闭答案提到的文件。事实上,我没有关闭它。原始代码(虽然很糟糕)与.close一起工作。谢天谢地是我没有关上它。原始代码(虽然很糟糕)与.close一起工作。谢谢