小编use*_*790的帖子

使用Python将dbf转换为sqlite不会填充表

我已经在这个问题上挣扎了一个多小时了.我正在尝试使用dbf表创建一个Sqlite数据库.当我创建一个从dbf派生的记录列表以用作Sqlite executemany语句的输入时,Sqlite表将显示为空.当我尝试以交互方式使用Python复制问题时,Sqlite执行成功.从dbf生成的列表在我运行时填充 - 所以问题在于executemany语句.

import sqlite3
from dbfpy import dbf

streets = dbf.Dbf("streets_sample.dbf")

conn = sqlite3.connect('navteq.db')

conn.execute('PRAGMA synchronous = OFF')
conn.execute('PRAGMA journal_mode = MEMORY')

conn.execute('DROP TABLE IF EXISTS STREETS')

conn.execute('''CREATE TABLE STREETS
    (blink_id CHAR(8) PRIMARY KEY,
    bst_name VARCHAR(39),
    bst_nm_pref CHAR(2));''')

alink_id = []
ast_name = []
ast_nm_pref = []

for i in streets:
    alink_id.append(i["LINK_ID"])
    ast_name.append(i["ST_NAME"])
    ast_nm_pref.append(i["ST_NM_PREF"])

streets_table = zip(alink_id, ast_name, ast_nm_pref)

conn.executemany("INSERT OR IGNORE INTO STREETS VALUES(?,?,?)", streets_table)

conn.close()
Run Code Online (Sandbox Code Playgroud)

python sql dbf

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

使用Python的xlrd和xlutils保留Excel格式的问题

简单地说,我想保留一个Excel文件的所有格式到另一个.但是,尽管使用了formatting_info=True标志,但仅对更改行中的所有未更改单元格显示格式.有什么建议?

import xlrd, xlutils
from xlrd import open_workbook
from xlutils.copy import copy

inBook = xlrd.open_workbook(r"path/to/file/format_input.xls", formatting_info=True, on_demand=True)
outBook = xlutils.copy.copy(inBook)

outBook.get_sheet(0).write(0,0,'changed!')
outBook.save(r"path/to/file/format_output.xls")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

在此输入图像描述

python excel xlrd xlutils

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

C 文件描述符在打开时返回 -1

这是一个令人尴尬的简单问题,但我似乎无法使用文件描述符打开一个新文件进行写入。我尝试过的每一个变体都会返回-1。我缺少什么?这就是使用文件描述符初始化文件的方式,对吗?我找不到另有说明的文档。

#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
  int fd;
  mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
  fd = open ("/home/CSTCIS/sample.dat", O_WRONLY, mode);
  printf("%d\n", fd);
}
Run Code Online (Sandbox Code Playgroud)

perror() 打印open: No such file or directory

c file-descriptor

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

将两个Python列表与正则表达式匹配,并创建字典输出

我有以下两个列表:

input = ['MAPLEWOOD AVE', 'LYNNDALE ', 'SUGAR DR']

ref = ['LYNNDALE (?:RD)?', 'HOMAN (?:AVE)?', 'MAPLEWOOD (?:AVE)?', 'LYNNDALE (?:LN)?']

我想查找inputwith中每个元素的所有匹配项ref。输出将是一个字典,每个键是一个input元素,每个值是一个ref与相应input元素匹配的元素,如下所示:

{'MAPLEWOOD AVE' : 'MAPLEWOOD AVE', 'LYNNDALE ' : 'LYNNDALE RD', 'LYNNDALE LN', 'SUGAR DR':}

以下内容使我可以迭代input查找其中的findall匹配项ref(其中包含嵌入式正则表达式分组)。但是,我无法从ref每个输入元素旁边作为值检索对应的match 元素:

combined = "(" + ")|(".join(ref) + ")"

l = []

for i in input:
    if re.findall(combined,i):
         l.append(i)
...
MAPLEWOOD AVE
LYNNDALE
Run Code Online (Sandbox Code Playgroud)

python regex dictionary

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

匹配变量时Python re.findall的问题

我试图匹配两个字符串变量,并希望捕获多个匹配.re.findall似乎是这项任务的明显选择,但它似乎并没有像我期望的那样工作.以下是一个例子:

a = 'a(pp)?le'
b = 'ale, apple, apol'
match = re.findall(a,b)
match
['','pp']
Run Code Online (Sandbox Code Playgroud)

但是,当我将相同的变量应用于re.search时,它会识别字符串中的嵌入式正则表达式,并获取第一个匹配项:

match = re.search(a,b)
match.group()
'ale'
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么re.findall不能在这个实例中工作?我希望如下:

match = re.findall(a,b)
match
['ale','apple']
Run Code Online (Sandbox Code Playgroud)

谢谢!

python regex variables

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

标签 统计

python ×4

regex ×2

c ×1

dbf ×1

dictionary ×1

excel ×1

file-descriptor ×1

sql ×1

variables ×1

xlrd ×1

xlutils ×1