小编Βασ*_*δης的帖子

Python中的内存问题.字典与数据库(或者你可以将两者结合起来吗?)

我正试图找到一个巨大输入的单词模式.我正在为此目的使用字典,几个小时后程序崩溃了MemoryError.

我修改了程序.我通过My​​SQLdb创建了一个数据库,并在那里插入了值的pattern-index.因此,对于每个单词,我检查它是否在索引中,如果不是,我用值将其写入索引.问题是数据库方法太慢了.

我想知道是否有任何方法可以组合字典和数据库,例如:

if ram <90% usage:
    seek into dict
    append to dict
else:
    if not (seek into dict):
        seek into database
        append to database
Run Code Online (Sandbox Code Playgroud)

使用字典用于输入100kb数据的相同目的需要约1.5秒

使用数据库进行相同的输入需要大约84秒

原始输入为16 GB.我不知道要处理多少钱.

python database memory dictionary

5
推荐指数
1
解决办法
377
查看次数

sqlite3 python意外终止

我已经设置了一个sqlite3数据库.我填写了一些数据(约400万条记录~1.2Gb的数据).然后我做一些查询(选择/删除/更新).问题是有时在插入后脚本会停止而不会出错.有时它会一直运行到最后.这些是我运行的查询类型:

from __future__ import print_function
import sqlite3
import csv
import os
import glob
import sys
import time

db = 'test.db'

conn = sqlite3.connect(db)
conn.text_factory = str  # allows utf-8 data to be stored

c = conn.cursor()
i = 0
### traverse the directory and process each .csv file

##print("debug")
csvfile =('/home/Desktop/Untitled Folder/Crimes_-_2001_to_present.csv')
with open(csvfile, "rb") as f:
    reader = csv.reader(f)
    t = time.time()
    header = True
    for row in reader:
        if header:
            # gather column names from the first row …
Run Code Online (Sandbox Code Playgroud)

python sqlite

5
推荐指数
1
解决办法
207
查看次数

在python中复制(重复)文件

我想将所有文件从 2 个目录复制到另一个目录,但是当文件具有相同的名称时,它们会在目标目录中复制一次(通过一个目录。不是两个)。

这是代码:

def cp_files_tmp(src, dest):#copy dir's files into a  dir
    src_files = os.listdir(src)
    for file_name in src_files:
        full_file_name = os.path.join(src, file_name)
        if (os.path.isfile(full_file_name)):
            shutil.copy(full_file_name, dest)

dest = 'C:/temp/'
src_A= 'C:/sil/in/'     
src_B= 'C:/olw/in/'

cp_files_tmp(src_A, dest) # cp files
cp_files_tmp(src_B, dest) # cp files
Run Code Online (Sandbox Code Playgroud)

python copy file shutil

2
推荐指数
1
解决办法
2425
查看次数

列表中的Python元素数量

我有一个数字字符串列表,如下所示:

MyList = ['1','2','3 4 5 6 7','33333']
Run Code Online (Sandbox Code Playgroud)

我想检查列表中的每个单元格它获得的对象数量.我为每个单元格使用了len(),但是它返回了我想要的字符串长度.我想要例如获得:

MyList[0] ~> 1
MyList[1] ~> 1
MyList[2] ~> 5
MyList[3] ~> 1
Run Code Online (Sandbox Code Playgroud)

我应该抛出每个元素来检查它是否返回一个数字,如果没有循环通过单元格?或者是否有一些功能可以解决问题?

谢谢.

python iteration list

0
推荐指数
1
解决办法
265
查看次数

标签 统计

python ×4

copy ×1

database ×1

dictionary ×1

file ×1

iteration ×1

list ×1

memory ×1

shutil ×1

sqlite ×1