Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.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_File Io - Fatal编程技术网

Python:读取数百万个文件并创建一个

Python:读取数百万个文件并创建一个,python,file,file-io,Python,File,File Io,好的,我从以下几点开始:这不是一个经常要做的过程,我不在乎过一段时间(但我需要它完成,不需要几天),并且必须使用Python 我需要阅读200万个html文件(4kb)并进行检查,只需一次,我就可以用python创建一个更快的程序(我今天学习python:/) 好吧,我想当我用数百万的htm来运行它时,所有的htm都会爆炸,我的整个办公室都会死掉。有什么小建议吗? 我完全不懂Python,但我认为我更难用javascript:P创建它 编辑: 我解释了我的问题对不起:p 这是打开文件的最佳方式吗

好的,我从以下几点开始:这不是一个经常要做的过程,我不在乎过一段时间(但我需要它完成,不需要几天),并且必须使用Python

我需要阅读200万个html文件(4kb)并进行检查,只需一次,我就可以用python创建一个更快的程序(我今天学习python:/)

好吧,我想当我用数百万的htm来运行它时,所有的htm都会爆炸,我的整个办公室都会死掉。有什么小建议吗? 我完全不懂Python,但我认为我更难用javascript:P创建它

编辑:

我解释了我的问题对不起:p

这是打开文件的最佳方式吗? 我对Python不太了解,并且理解“files”var可能有巨大的大小(不知道是保存的值还是仅引用),需要读取数百万个文件

打开Writer并在整个程序中保持打开状态?他每次写的时候都会保存,如果程序失败,他会丢失所有的东西吗


很抱歉给您带来不便

您正在使用readlines创建
2000000
不必要的列表,您还需要将
名称加入路径,您有8 Gig的数据,因此除非您在
my_logic()
中进行大量工作,否则不会花费几天时间

path = './files/'
files = glob.glob(path)
with open('myfile.txt', 'a+') as writer:
    for name in glob.glob(path + "*.html"):
        try:
            with open(os.path.join(path, name)) as f: # join path and filename
                for line in f: # iterate over file object
                    result = my_logic()
                writer.write(result)  #Concatenated string
        except IOError as e:
            print(e)

不,它不会爆炸,你一次处理一个文件,一次处理一行,我不认为这会对系统造成多大影响。问题是什么?除了
结果
没有在任何地方定义之外,我觉得很好。运行它,看看它是否有效-它可能不会爆炸。如果你知道你的代码有效,并且你只是想总体上改进它,试着继续问下去。我解释了更多我的问题,对给你带来的不便表示抱歉,并感谢你的回答:你应该将你的工作分成更多的进程,以利用多核体系结构。确切的解决方案显然取决于可用的数据,但就我所见,此操作完全是数据并行的。
path = './files/'
files = glob.glob(path)
with open('myfile.txt', 'a+') as writer:
    for name in glob.glob(path + "*.html"):
        try:
            with open(os.path.join(path, name)) as f: # join path and filename
                for line in f: # iterate over file object
                    result = my_logic()
                writer.write(result)  #Concatenated string
        except IOError as e:
            print(e)