有两种方法可以在Python中打开文本文件:
f = open(filename)
Run Code Online (Sandbox Code Playgroud)
和
import codecs
f = codecs.open(filename, encoding="utf-8")
Run Code Online (Sandbox Code Playgroud)
何时比较codecs.open好open?
我需要自动化这样的事情:
我看到https://developer.mozilla.org/en/Command_Line_Options但我找不到一个选项来调用命令"将页面保存为...(在模式网页完成中)".所以我可以拥有显示页面所需的所有css,js,xml和相关文件.
我知道一些Python,如果我找到一种与Firefox"交谈"的方法,我可以使用它.webbrowser模块在这里没有帮助,因为它不允许保存页面:http://docs.python.org/library/webbrowser.html
我对任何解决方案都开放了.
平台:Linux,但如果没有其他方法,我可以使用另一个.
重要提示:我不能只检索Web服务器提供的HTML,因为我需要用于查看浏览器呈现的页面的所有css,js,图像和文件.例如,图像可能未在HTML中链接,而是由呈现页面时执行的js引用.我认为我可以检索此图像的唯一方法是执行页面,就像我是浏览器一样,然后从结果页面(而不是原始页面)获取所有文件.
我有这条线可以正常工作:
c.execute('select cleanseq from cleanseqs WHERE newID="%s"'%name)
Run Code Online (Sandbox Code Playgroud)
但我想使用SQLite参数替换而不是字符串替换(因为我在这里看到这更安全).
这是我的(失败)尝试:
t = (name,)
c.execute('select cleanseq from cleanseqs WHERE newID="?"',t)
Run Code Online (Sandbox Code Playgroud)
但是这条线返回:
'提供的绑定数量不正确.当前语句使用0,并且有1个提供.
所以我的陈述的左边部分不起作用.我提供一个绑定(名称,在t)但似乎没有解析问号(?).如果我删除引用的引号,它就可以了.但我希望引号留在那里,因为我记得有些情况我需要它们.
所以问题是:我如何转换这一行:
c.execute('select cleanseq from cleanseqs WHERE newID="%s"'%name)
Run Code Online (Sandbox Code Playgroud) 为了进行调试,我需要确切地看到浏览器发送到表单的内容.我有Mozilla的"篡改数据"插件,但它没有告诉我我在寻找什么.我需要的是一个包含浏览器发送的所有文本文件,它应该如下所示:
Content-Type: multipart/form-data; boundary=AaB03x
--AaB03x
Content-Disposition: form-data; name="submit-name"
Larry
--AaB03x
Content-Disposition: form-data; name="files"
Content-Type: multipart/mixed; boundary=BbC04y
--BbC04y
Content-Disposition: file; filename="file1.txt"
Content-Type: text/plain
Run Code Online (Sandbox Code Playgroud) 我需要一个像这样工作的类:
>>> a=Foo()
>>> b=Foo()
>>> c=Foo()
>>> c.i
3
Run Code Online (Sandbox Code Playgroud)
这是我的尝试:
class Foo(object):
i = 0
def __init__(self):
Foo.i += 1
Run Code Online (Sandbox Code Playgroud)
它按要求工作,但我想知道是否有更多的pythonic方法来做到这一点.
如何从"尝试写入只读文件系统"中挑选(区分)从"磁盘已满状态"派生的错误?我不想填写我的HD来找出:)我想知道是谁捕获每个异常,所以我的代码可以在用户尝试写入ReadOnly FS时向用户说些什么,如果是用户正在尝试在已满的磁盘中写入文件.
我可以在Python中检查一个模块,例如:
try:
import some_module
except ImportError:
print "No some_module!"
Run Code Online (Sandbox Code Playgroud)
但我不想使用try/except.有没有办法实现这个目标?(它应该适用于Python 2.5.x.)
注意:不使用try/except的原因是任意的,这只是因为我想知道是否有办法在不使用异常的情况下测试它.
我前段时间做了一个REGEX模式,我不记得它的含义了.对我来说这是一种只写语言:)
这是REGEX:
"(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$"
Run Code Online (Sandbox Code Playgroud)
我需要用简单的英语知道这意味着什么.