小编Cra*_*een的帖子

Python 3不读取新服务器上的unicode文件

我的网页由一个动态导入大量文件的脚本提供服务

try:
    with open (filename, 'r') as f:
        exec(f.read())
except IOError: pass
Run Code Online (Sandbox Code Playgroud)

(实际上,你能建议一个更好的导入文件的方法吗?我确定有一个.)

有时文件包含不同语言的字符串,例如

# contents of language.ru
title = "????????"
Run Code Online (Sandbox Code Playgroud)

这些都保存为UTF-8文件.Python在命令行中运行脚本或从我的MacBook提供页面没有问题:

    OK: [server command line] python3.0 page.py /index.ru
    OK: http://whitebox.local/index.ru

但是当我尝试从我们刚搬到的服务器上提供页面时,它会抛出一个错误:

      157     try:
      158         with open (filename, 'r') as f:
      159             exec(f.read())
      160     except IOError: pass
      161 
      /usr/local/lib/python3.0/io.py in read(self=, n=-1)
      ...
      UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 627: ordinal not in range(128) 

所有文件都是从我的笔记本电脑中复制出来的,而Apache则完美地为它们服务 是什么原因?

更新:我发现默认编码open()是依赖于平台的,所以它utf8在我的笔记本电脑和ascii服务器上.我想知道是否有一个per-program函数在Python 3中设置它(sys.setdefaultencoding在 …

unicode python-3.x

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

如何编写Python 2.6+脚本,使用较旧的Python优雅地失败?

我正在使用Python 3.x中的新打印,我观察到以下代码由于没有编译end=' '.

from __future__ import print_function

import sys
if sys.hexversion < 0x02060000:
    raise Exception("py too old")

...
print("x",end=" ") # fails to compile with py24
Run Code Online (Sandbox Code Playgroud)

如何继续使用新语法但使脚本失败?是否必须调用另一个脚本并在此处仅使用安全语法?

python python-3.x

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

Ubuntu Linux 中从剪贴板复制 R

我想从 Ubuntu Linux 剪贴板复制到 R Studio 中。我的工作流程包括在 R Studio 和 LibreOffice Calc 之间来回移动。我找到了以下用于写入 Linux X11 剪贴板的代码,但我不知道如何从中读取。

写入 X11 Linux 剪贴板:

clipboard <- function(x, sep="\t", row.names=FALSE, col.names=TRUE){
     con <- pipe("xclip -selection clipboard -i", open="w")
     write.table(x, con, sep=sep, row.names=row.names, col.names=col.names)
     close(con)
}

# Examples
vec <- c(1,2,3,4)

clipboard(vec)
clipboard(vec, ",", col.names=FALSE)
clipboard(vec, " ", row.names=TRUE)
Run Code Online (Sandbox Code Playgroud)

如果我在 LibreOffice Calc 中突出显示一个选择,我想将其直接粘贴到 R Studio 中。我该如何完成这个任务?我已经在 Ubuntu 中安装了 xclip。

sudo apt-get install xclip
Run Code Online (Sandbox Code Playgroud)

linux ubuntu r openoffice-calc libreoffice

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

用于检测Linux发行版的Python模块

是否有一个现有的python模块可用于检测Linux的哪个版本以及当前安装的版本的发行版.

例如:

  • RedHat Enterprise 5
  • Fedora 11
  • Suse Enterprise 11
  • 等等....

我可以通过解析像/ etc/redhat-release这样的各种文件来创建自己的模块,但我想知道模块是否已经存在?

干杯,伊万

python redhat suse

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

Android推荐用于Atom处理器平台吗?

我将开发一款具有Atom处理器的手持设备.我正在考虑使用Android嵌入式操作系统在该设备上运行电信应用程序.我从朋友那里听说Android适用于无线应用.但我的设备不需要任何无线应用程序.我只需要在此设备上运行数据(ping,traceroute ...),IPTV和VoIP应用程序.那么建议在我的设备上使用Android吗?

embedded android voip handheld iptv

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

使用 Python 和 comtypes 使用数组设置 Excel 范围?

使用comtypes驱动的Python,似乎有些神奇正在发生未转换元组和列表的幕后VARIANT类型:

# RANGE(“C14:D21”) has values
# Setting the Value on the Range with a Variant should work, but
# list or tuple is not getting converted properly it seems

>>>from comtypes.client import CreateObject
>>>xl = CreateObject("Excel.application")
>>>xl.Workbooks.Open(r'C:\temp\my_file.xlsx')
>>>xl.Visible = True
>>>vals=tuple([(x,y) for x,y in zip('abcdefgh',xrange(8))])
# creates: 
#(('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4), ('f', 5), ('g', 6), ('h', 7))
>>>sheet = xl.Workbooks[1].Sheets["Sheet1"]
>>>sheet.Range["C14","D21"].Value()
(('foo',1),('foo',2),('foo',3),('foo',4),('foo',6),('foo',6),('foo',7),('foo',8))
>>>sheet.Range["C14","D21"].Value[()] = vals
# no error, this blanks …
Run Code Online (Sandbox Code Playgroud)

python arrays com excel range

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

嵌入式系统:重启前最后一次喘息

当嵌入式系统出现问题时,我倾向于将错误写入闪存中的特殊日志文件然后重新启动(例如,如果内存不足,则没有太多选择).

我意识到即使这样也会出错,所以我尽量减少它(通过在最终写入期间不分配任何内存,并提高写入进程的优先级).

但这取决于有人检索日志文件.现在我正在考虑通过intertubes发送消息,以便在重新启动之前报告错误.

当然,第二个想法是,重新启动后发送该消息会更好,但它确实让我思考......

如果我发现一个不可恢复的错误,我应该做什么样的事情?如何在一个处于不稳定状态的系统中尽可能安全地做到这一点?

embedded

4
推荐指数
2
解决办法
571
查看次数

如何在编译时确定数组的长度?

是否有可以在GCC编译时返回数组长度的宏或内置函数?

例如:

int array[10];
Run Code Online (Sandbox Code Playgroud)

对于:

sizeof(array) == 40
???(array) == 10
Run Code Online (Sandbox Code Playgroud)

Update0

我可能只是指出在C++中这样做是微不足道的.可以构建一个返回内部数字的模板[].我确信,我一旦发现lengthofdimof宏/内置在Visual C++编译器,但无法找到它了.

c arrays gcc compile-time

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

两个文本文件之间的差异和交叉报告

免责声明:我是编程和脚本编程的新手,所以请原谅缺乏技术术语

所以我有两个包含列出名称的文本文件数据集:

First File | Second File
bob        | bob
mark       | mark
larry      | bruce
tom        | tom
Run Code Online (Sandbox Code Playgroud)

我想运行一个脚本(pref python),它输出一个文本文件中的交叉线和另一个文本文件中的不同行,例如:

matches.txt:

bob 
mark 
tom 
Run Code Online (Sandbox Code Playgroud)

differences.txt:

bruce
Run Code Online (Sandbox Code Playgroud)

我如何用Python实现这一目标?或者使用Unix命令行,如果它足够简单?

python shell compare list

4
推荐指数
3
解决办法
9190
查看次数

在 Visual Studio Code 中远程调试 Rust 程序

我正在开发一个 Rust 程序,在基于 64 位 ARM 处理器的嵌入式 Linux 板上运行。目标的嵌入式 Linux 是使用 Yocto (dunfell) 构建的。我的 Rust 开发环境是在 Linux (Ubuntu) 上运行的 Visual Studio Code。如何设置才能远程调试目标板上的程序?

我预计顺序会是这样的:

  • 为目标编译 Rust 程序(用于调试)。
  • 将调试 bin 文件复制到目标。
  • 使用 gdbserver 或 lldb-server 在目标上运行它。
  • VS Code 连接到远程 gdb/lldb,并控制程序进行常规调试。

remote-debugging rust visual-studio-code

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