Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.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

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_Tkinter_Crash - Fatal编程技术网

Python 函数问题程序

Python 函数问题程序,python,file,tkinter,crash,Python,File,Tkinter,Crash,我写了一个制作列表的程序 但当导入文件的内容较高时 程序已关闭(崩溃) 这是我写的代码 在这张照片中,使用了一个低内容的文件 这张照片使用了一个包含大量内容的文件 def btn_start(): try: if open_file1_text and open_file2_text : file_1 = open(open_file1_text.get(), 'r') file_2 = open(open_file

我写了一个制作列表的程序
但当导入文件的内容较高时
程序已关闭(崩溃)
这是我写的代码


在这张照片中,使用了一个低内容的文件


这张照片使用了一个包含大量内容的文件


def btn_start():
    try:
        if open_file1_text and open_file2_text :
            file_1 = open(open_file1_text.get(), 'r')
            file_2 = open(open_file2_text.get(), 'r')
            lines_1 = file_1.readlines()
            lines_2 = file_2.readlines()
            global text
            text = ("")
            demo_text_box.delete(1.0,'end')
            demo_text_box_a.delete(1.0,'end')
            demo_text_box_a.insert(INSERT,start_text_demo )
            for pline in lines_2:
                for uline in lines_1:
                    demo_text_box.insert(INSERT,uline.rstrip('\n') + separator_text_.get() + pline)
                    text += (uline.rstrip('\n') + separator_text_.get() + pline)

            file_1.close()
            file_2.close()
    except FileNotFoundError :
        demo_text_box.delete(1.0,'end')
        demo_text_box_a.delete(1.0,'end')
        demo_text_box_a.insert(INSERT,File_Not_Found_Error )

您的代码还有另一个问题:如果未找到
文件\u 2
,则
文件\u 1
将保持打开状态,这可能是错误的(您希望在不再需要文件时尽快关闭它们)

您可以使用
语句来解决这个问题,即使发生异常,这些语句也会自动关闭您的文件

至于您的内存问题,我想
文本
不适合内存,因此您可能需要将其内容写入另一个文件

def btn_start(open_file1_text, open_file2_text):
    if not (open_file1_text and open_file2_text):
        return

    try:
        with open(open_file1_text.get(), 'r') as file_1:
            lines_1 = file_1.readlines()
            with open(open_file1_text.get(), 'r') as file_2:
                lines_2 = file_2.readlines()
                demo_text_box.delete(1.0, 'end')
                demo_text_box_a.delete(1.0, 'end')
                demo_text_box_a.insert(INSERT, start_text_demo)

                with open('text.txt', 'w') as text_file:
                    for pline in lines_2:
                        for uline in lines_1:
                            demo_text_box.insert(INSERT,uline.rstrip('\n') + separator_text_.get() + pline)
                            text_file.write(uline.rstrip('\n') + separator_text_.get() + pline)
    except FileNotFoundError :
        demo_text_box.delete(1.0,'end')
        demo_text_box_a.delete(1.0,'end')
        demo_text_box_a.insert(INSERT,File_Not_Found_Error )
如果文件本身不适合内存(意味着您无法调用
file.readlines()
), 您还可以在循环的每次迭代中读取它们:

with open('text.txt', 'w') as text_file:
    with open(open_file1_text.get(), 'r') as file_2:
        for pline in file_2:
            with open(open_file1_text.get(), 'r') as file_1:
                for uline in file_1:
                    demo_text_box.insert(INSERT,uline.rstrip('\n') + separator_text_.get() + pline)
                    text_file.write(uline.rstrip('\n') + separator_text_.get() + pline)

大家好,欢迎来到StackOverflow!您介意编辑您的帖子并向我们显示您遇到的错误吗?程序工作正常,但内容越多,程序就越不工作“内容高”是什么意思?我已经成功地使用了一个包含数千行的文本小部件。@vlad0024您的嵌套pline
。。。对于uline…
看起来很糟糕。添加一个
print(uline)
以验证它是否仍在循环。你想在这里完成什么?我把程序放在GitHub中,你可以测试,但是文件中的内容越多,它就越不起作用