我的网页由一个动态导入大量文件的脚本提供服务
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在 …
我正在使用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)
如何继续使用新语法但使脚本失败?是否必须调用另一个脚本并在此处仅使用安全语法?
我想从 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) 是否有一个现有的python模块可用于检测Linux的哪个版本以及当前安装的版本的发行版.
例如:
我可以通过解析像/ etc/redhat-release这样的各种文件来创建自己的模块,但我想知道模块是否已经存在?
干杯,伊万
我将开发一款具有Atom处理器的手持设备.我正在考虑使用Android嵌入式操作系统在该设备上运行电信应用程序.我从朋友那里听说Android适用于无线应用.但我的设备不需要任何无线应用程序.我只需要在此设备上运行数据(ping,traceroute ...),IPTV和VoIP应用程序.那么建议在我的设备上使用Android吗?
使用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) 当嵌入式系统出现问题时,我倾向于将错误写入闪存中的特殊日志文件然后重新启动(例如,如果内存不足,则没有太多选择).
我意识到即使这样也会出错,所以我尽量减少它(通过在最终写入期间不分配任何内存,并提高写入进程的优先级).
但这取决于有人检索日志文件.现在我正在考虑通过intertubes发送消息,以便在重新启动之前报告错误.
当然,第二个想法是,重新启动后发送该消息会更好,但它确实让我思考......
如果我发现一个不可恢复的错误,我应该做什么样的事情?如何在一个处于不稳定状态的系统中尽可能安全地做到这一点?
是否有可以在GCC编译时返回数组长度的宏或内置函数?
例如:
int array[10];
Run Code Online (Sandbox Code Playgroud)
对于:
sizeof(array) == 40
???(array) == 10
Run Code Online (Sandbox Code Playgroud)
我可能只是指出在C++中这样做是微不足道的.可以构建一个返回内部数字的模板[].我确信,我一旦发现lengthof和dimof宏/内置在Visual C++编译器,但无法找到它了.
免责声明:我是编程和脚本编程的新手,所以请原谅缺乏技术术语
所以我有两个包含列出名称的文本文件数据集:
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命令行,如果它足够简单?
我正在开发一个 Rust 程序,在基于 64 位 ARM 处理器的嵌入式 Linux 板上运行。目标的嵌入式 Linux 是使用 Yocto (dunfell) 构建的。我的 Rust 开发环境是在 Linux (Ubuntu) 上运行的 Visual Studio Code。如何设置才能远程调试目标板上的程序?
我预计顺序会是这样的: