我最近成为 PyPDF2 的维护者,这是一个相当古老的库,但仍然有一些处理2.4 之前的Python 版本的代码。虽然我想尽快放弃对 3.5 及更早版本的支持,但我看到一些部分我不确定为什么要这样编写。
一个例子是这样的:
代码中的内容:
class Foo(object):
def a(b, c):
print(b)
print(c)
a = staticmethod(a)
Run Code Online (Sandbox Code Playgroud)
我所期望的是:
class Bar(object):
@staticmethod
def a(b, c):
print(b)
print(c)
Run Code Online (Sandbox Code Playgroud)
有什么理由使用第一个符号吗?它们严格等价吗?
我已经看到Python 2.4 中引入了装饰器,因此这可能是此类极端遗留代码的一个示例。
我正在做最后一年的项目,所以我正在开发一个用户可以阅读 PDF 的网站。我添加了一些功能,例如将货币转换为本国货币。我在我的项目中使用flask和pymuPDF,我不知道如何修改pdf中的文本,有人可以帮助我解决这个问题吗?
我听说这里使用 pymuPDF 或 pypdf 可以工作,但我没有找到任何替换文本的解决方案。
在我将它作为类文件对象获取之前,我想用 Python 验证 tar 存档中给定文件的存在。我已经尝试过isreg(),但可能我做错了什么。
如何使用 Python 检查 tar 存档中是否存在文件?
我试过
import tarfile
tar = tarfile.open("sample.tar", "w")
tar.add("test1.txt")
tar.add("test2.txt")
tar.add("test3.py")
tar.close()
tar = tarfile.open("sample.tar", "r")
tai = tar.tarinfo(name="test3.py")
print(tai.isreg())
print(tai.size())
tar.close()
Run Code Online (Sandbox Code Playgroud)
可能是tai错了。实际上tai.size()总是0。
我正在尝试为Django项目建立一个virtualenv.它需要MySQL-python.我正在尝试复制使用Python 2.5的生产环境.我的Ubuntu桌面有Python 2.5.我可以安装Python 2.5 virtualenv virtualenv --python=/usr/bin/python2.5 ....但是,当我尝试时pip install MySQL-python,我得到这个输出:
$ pip install MySQL-python
Downloading/unpacking MySQL-python
Running setup.py egg_info for package MySQL-python
warning: no files found matching 'MANIFEST'
warning: no files found matching 'ChangeLog'
warning: no files found matching 'GPL'
Installing collected packages: MySQL-python
Running setup.py install for MySQL-python
building '_mysql' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/include/mysql -I/usr/include/python2.5 -c _mysql.c -o build/temp.linux-i686-2.5/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX
In file included …Run Code Online (Sandbox Code Playgroud) 我只知道一些文件系统,如FAT,将文件名存储为大写,无论用于创建它们的情况如何.所以不可能将Bishop.png和bishop.png放在同一个文件夹中,是吗?
如果我的Linux服务器在这个文件夹中包含这两个文件,我会创建一个这样的网页:
<html>
<body>
<img src="Bishop.png" />
<img src="bishop.png" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
现在这个页面得到Windows 98客户端的请求(我认为他们只有FAT).将Bishop.png显示两次吗?将bishop.png显示两次吗?或者是否会显示两个图像,尽管如果这些文件存储在本地,Windows 98无法区分这些文件?
(我没有任何可能为自己检查这个,因为我只有Linux)
当我尝试使用exec时:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
int main()
{
exec("echo `Hello World`");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
code.c:11: error: implicit declaration of function ‘exec’
make: *** [code.o] Error 1
Run Code Online (Sandbox Code Playgroud)
我必须使用std = c99,我不能添加任何其他编译器标志.我怎样才能使用exec(或同一个电话)?
我猜解决方案对于杀人来说是一样的,不是吗?
我需要解析日期和时间.这是我得到的:
import time
a = time.strptime('Apr 28 2013 23:01', "%b %d %y %H:%M")
print a
Run Code Online (Sandbox Code Playgroud)
但它给了我
Traceback (most recent call last):
File "/home/aaa/Documents/python_test.py", line 17, in <module>
a = time.strptime('Apr 28 2013 23:01', "%b %d %y %H:%M")
File "/usr/lib/python2.7/_strptime.py", line 467, in _strptime_time
return _strptime(data_string, format)[0]
File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data 'Apr 28 2013 23:01' does not match format '%b %d %y %H:%M'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我目前正在学习Haskell的99个问题,我.在一个解决方案中看到过.它似乎是数学中已知的常用函数组合:
f ? g
Run Code Online (Sandbox Code Playgroud)
我想确保我已正确理解它并创建了这个示例:
square x = x*x
neg x = (-1)*x
main = do
-- let result = neg (square 4.1) -- works
-- let result = square (neg 4.2) -- works
-- let result = neg $ square 4.3 -- works
let result = neg square 4.4 -- doesn't work
-- let result = neg . square 4.5 -- doesn't work
-- let result = neg . square $ 4.6 -- works
-- …Run Code Online (Sandbox Code Playgroud) 我想用Prolog解决以下问题来改进/测试我的Prolog知识.
找到三个数字X,Y和Z,使得base10中的XYZ等于base9中的ZYX
来源:咖啡时间的挑战
由于我已经用其他语言解决了它,我知道解决方案是:
我通过生成X,Y,Z(10 ^ 3 = 1000种组合)的所有组合并测试条件是否为真来解决其他语言.
使用Prolog,我编写了以下测试程序:
is_solution(X, Y, Z) :- 9>=X, X>=0, 9>=Y, Y>=0, 9>=Z, Z>=0,
base10 is (100*X + 10*Y + Z), base9 is (9*9*Z+9*Y+X),
base10 = base9.
Run Code Online (Sandbox Code Playgroud)
但似乎有些不对劲:
?- is_solution(0,0,0).
false.
?- is_solution(4,4,5).
false.
Run Code Online (Sandbox Code Playgroud)
我以为我可以通过swipl -f main.prolog以下方式获得解决方案:
is_solution(X,Y,Z).
ERROR: >=/2: Arguments are not sufficiently instantiated
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题
最后,我想有一个可执行脚本,可以打印所有解决方案而无需用户交互.我已经看过findall,我想我必须在这里使用它,但到目前为止我从未(成功)使用它.你能告诉我如何打印这个问题的所有解决方案吗?
我有一个tar文件来自http://download.geofabrik.de/africa/botswana-latest.osm.bz2
当我将文件保存到磁盘并使用Python tarfile库提取.osm文件时,我收到无效的标头错误.
有没有办法解决这个错误?
7zip可以打开文件并提取数据而不会出现问题,但我需要编写数据提取脚本.
python ×6
python-2.7 ×2
tarfile ×2
c ×1
c99 ×1
filesystems ×1
flask ×1
haskell ×1
legacy-code ×1
linux ×1
mysql-python ×1
pip ×1
prolog ×1
pymupdf ×1
pypdf ×1
python-2.x ×1
tar ×1
virtualenv ×1
windows ×1