小编ans*_*ung的帖子

CSV文件的Unicode到UTF8 - Python通过xlrd

我正在尝试使用Python xlrd和csv模块将Excel电子表格翻译为CSV,但我对编码问题感到困惑.Xlrd以Unicode格式生成Excel中的输出,CSV模块需要UTF-8.

我想象这与xlrd模块无关:一切正常输出到stdout或其他不需要特定编码的输出.

根据,工作表编码为UTF-16-LE book.encoding

我正在做的简化版本是:

from xlrd import *
import csv
b = open_workbook('file.xls')
s = b.sheet_by_name('Export')
bc = open('file.csv','w')
bcw = csv.writer(bc,csv.excel,b.encoding)
for row in range(s.nrows):
    this_row = []
    for col in range(s.ncols):
        this_row.append(s.cell_value(row,col))
    bcw.writerow(this_row)
Run Code Online (Sandbox Code Playgroud)

这会产生以下错误,大约740行:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 5: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

似乎挂起的值是"516-777316" - 原始Excel工作表中的文本是"516-7773167"(最后有7个)

我会是第一个承认,我只有字符编码是如何工作的一个模糊的感觉,所以大部分是我到目前为止已经试过是各种摸索排列.encode,并.decodes.cell_value(row,col)

如果有人可以建议一个解决方案我会很感激 - 如果你能解释一下什么不起作用以及为什么这样做会更好,那么我将来可以更容易地调试这些问题.

提前致谢!

编辑:

感谢您的评论到目前为止.

当我用户this_row.append(s.cell(row,col))(egscell而不是s.cell_value)时,整个文档写入没有错误.

输出并不是特别理想的(text:u'516-7773167'),但它避免了错误,即使有问题的字符仍然在输出中.

这让我觉得挑战可能毕竟是xlrd.

思考?

python csv unicode encoding xlrd

18
推荐指数
2
解决办法
2万
查看次数

工具在Internet Explorer中调试CSS

Firebug Lite以外的工具是否可以帮助人们进入Internet Explorer的小错误思路,并准确地找出它在哪里以及为什么会严重损坏我的CSS?

Firebug Lite当然是一个很有用的工具,但似乎缺少关键特性(存在于'完整的'Firebug插件中),它允许您查看哪些声明部分被忽略而支持其他声明.

例如,使用带Firebug的Firefox我可以看到稍后在样式表中.foo {color: red}被覆盖.bar {color: blue}.

但是,Firebug lite似乎只显示最终的计算样式 - 我无法分辨哪些声明被忽略,哪些声明被覆盖,哪些声明根本不受支持,哪些只是简单的错误.

还有其他工具可能对此有帮助吗?

css firebug internet-explorer

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

如何让 Greasemonkey 在页面中的“任何内容”之前运行?

是否可以让 Greasemonkey 脚本先于页面上的其他内容运行?

我知道@run-at document-start,但这似乎是在<HTML>标签之后立即运行的。通常这不是问题,但如果页面格式错误(如下例所示),我似乎无能为力。

我将不胜感激任何建议或想法。谢谢!

<script>alert('This is an annoying message.');</script>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
        <HEAD>
...etc...
Run Code Online (Sandbox Code Playgroud)

javascript greasemonkey

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

案例的顺序在PHP switch语句中是否重要?

在PHP switch语句中,将更常见的案例置于最高位置是否会提高性能?

例如,假设以下函数被调用1,000次:

<?php 
function foo_user ($op) {
    switch ($op) {
        case 'after_update':
        //Some Stuff
        case 'login':
        //Some other Stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

如果在函数被调用的1000次中的990中,$ op参数是'login',那么在语句中使用case: 'login'以上内容会改善性能吗?例如,如果传递了代码后会被忽略吗?case 'after_update':switchcase 'after_update':$op = login

我对这个想法进行了一些非正式的测试,但差别可以忽略不计 - 也许是因为代码之后case: 'login'并且case 'after_update':都是微不足道的.如果有人完全知道答案,我宁愿避免使用非平凡的操作设置更广泛的测试.

这特别是Drupal问题,但我想任何熟悉PHP优化的人都可以解决这个问题.

php optimization drupal micro-optimization

5
推荐指数
2
解决办法
1870
查看次数

MySQL SELECTS的开销 - 更好地使用一个或多个顺序

在一个SELECT foo, bar, FROM users查询返回500行和500个SELECT foo, bar, FROM users WHERE id = x查询同时出现之间是否存在明显的性能差异?

在我正在编写的PHP应用程序中,我正在尝试在编写清晰,可读的代码段之间进行选择,这将产生大约500个SELECT语句; 或者以一种模糊,复杂的方式编写它,只使用一个返回500行的SELECT.

我更喜欢使用清晰,可维护代码的方式,但我担心每个SELECT的连接开销都会导致性能问题.

背景信息,如果它是相关的:1)这是一个Drupal模块,用PHP编码2)有问题的表获得很少的INSERT和UPDATE,很少被锁定3)SQL JOIN不可能出于与之无关的原因题

谢谢!

php mysql performance overhead micro-optimization

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

Drupal是否解析了未使用的钩子?

Drupal是否解析(和/或运行)与当前用户加载的内容无关的钩子?

例如,假设我foo安装了一个模块并使用以下钩子激活:

<?php 
// .. stuff ...    
function foo_menu() {
      $items = array();
      $items['foo/show'] = array(
        'title' => t('Foo!'),
        'page callback' => 'foo_display_all',
        'description' => 'All our foo are belong to you',
        'type' => MENU_NORMAL_ITEM,
      );
      return $items;
    }

    function foo_display_all() {
    // About 100 lines of code
    }
// ... stuff ...
Run Code Online (Sandbox Code Playgroud)

Drupal会为未列出的页面解析(从而影响加载时间)foo_menu吗?换句话说,foo_display_all影响www.example.com/bar加载的长度和复杂程度是多少?

有可能在这里遇到两个不同的问题,我会说我很感激Drupal如何以及为什么解析的解释(或链接到解释),而不是是/否答案.

php optimization hook drupal drupal-6

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

在Drupal 6中将Logic添加到"Promoted to front page"功能

我试图在Drupal 6中的'Promoted to front page'功能中添加一些额外的逻辑.也就是说,默认情况下,我想添加额外的标准,节点必须满足才能出现在家中页.

具体来说,我不希望主页上出现的过去事件(由CCK日期字段确定)即使它们被提升.

有没有办法可以替换所产生的内容node_page_default()?SQL没有动态生成,所以我想输出需要完全替换.

(我意识到所有这些都可以通过Views或者hook_cron完成,但我宁愿不要将这些方法用于相对较小的怪癖.)

提前致谢!

drupal drupal-6

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