小编use*_*702的帖子

明确关闭文件重要吗?

在Python中,如果您在未调用的情况下打开文件close(),或者关闭文件但未使用try- finally或" with"语句,这是一个问题吗?或者它是否足以作为编码实践依赖Python垃圾收集来关闭所有文件?例如,如果有人这样做:

for line in open("filename"):
    # ... do stuff ...
Run Code Online (Sandbox Code Playgroud)

...这是一个问题,因为文件永远不会被关闭,并且可能发生一个阻止它被关闭的异常?或者它肯定会在for声明结束时关闭,因为文件超出了范围?

python garbage-collection file

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

如何在当前命名空间中获取Python交互式控制台?

我希望我的Python代码在运行代码的过程中使用code.interact()之类的东西启动Python交互式控制台(REPL).但是code.interact()启动的控制台没有看到当前命名空间中的变量.我该怎么做:

了mystring = "你好"

code.interact()

...然后在启动的交互式控制台中,我应该能够输入mystring并获得"hello".这可能吗?我需要将code.interact()的"local"参数设置为什么?这会是什么?该怎么称呼它?

python variables console namespaces read-eval-print-loop

12
推荐指数
1
解决办法
8521
查看次数

C/C++:静态链接库和目标文件有什么区别?

我知道编译时包含在可执行文件中的代码可以来自目标文件(.o文件)和静态链接库(.lib/.a文件).从根本上和概念上讲这两者之间的区别是什么?为什么"目标代码"和"静态链接库"之间存在不同的概念?各有哪些优点和缺点,为什么使用一个而不是另一个?静态链接库是否可以从目标文件中生成,反之亦然,是否可以从静态链接库中创建目标文件?

c c++ static linkage object-files

8
推荐指数
2
解决办法
1595
查看次数

在 Windows 上调试直接 Cython 代码

我想知道是否可以在 Windows 上直接调试 Cython 代码,而不必在中间 C 文件中调试?目前,当我构建 Cython 扩展模块时,我获得了一个 .PDB 文件(Visual Studio 调试符号)和“cython_debug”文件夹(Cygdb 符号)。但是,似乎我无法使用 Cygdb(因此无法使用“cython_debug”文件夹),因为 GDB 无法在 Python 中找到任何调试符号,我认为这反过来是因为 Python 是使用 Visual Studio 构建的( MSVC) 工具集在 Windows 上。目前,我能够调试 Cython 扩展的唯一方法是使用 Visual Studio 调试器中的中间 C 代码,这是大量代码,需要了解从 Cython 到 C 的转换。为了在 Cython 代码层本身进行调试,我需要做什么?这是否需要使用 GNU GCC 工具集以与公开发布的 Python 版本不兼容的方式构建 Python 本身——以及我正在使用的所有 3rd-party Python 库?或者有什么方法可以在 MSVC 构建中获得必要的 GDB 符号?

Cygdb——以及使用“cython_debug”文件夹的系统——是否只设计用于Linux而不是Windows?

debugging cython

6
推荐指数
0
解决办法
504
查看次数

Perl是否具有可以包含任何类型键的关联数组类型?

似乎Perl只能将字符串作为哈希的键.(在某个版本的Perl中是否已经更改了?)仅限于能够使用字符串作为键是非常有限的.如果我想要一个对象或一个数组作为关键怎么办?在Python中,很容易使用数组,元组和其他可以比较的对象,如dict键.Perl确实能够比较数组之类的东西是否相等,所以我不明白为什么它们不能用作映射类型键.

是不是有办法在Perl中使用任何键类型?有没有提供此功能的模块?

mapping perl hash types associative

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

PDFbox - 如何在 Java 中测试和调整 PDF 以匹配 PDF/A 合规性

在Java中,我希望能够读取PDF文件,测试它是否兼容PDF/A(PDF for Archiving),如果不兼容,则将文件转换为PDF/A。

我可能更喜欢 Apache PDFBox,因为我已经在该 API 中做了一些事情,但我也愿意接受其他 API。

java pdf parsing pdfa pdfbox

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

如何在Windows上构建GDB

如何在Windows上从源代码构建GDB(GNU调试器)?我需要构建它以便使用Python支持进行构建.我不能使用与Cygwin一起发布的那个,因为它在解释Windows上的反斜杠时遇到问题.构建需要哪些工具链--GnuWin32,MinGW等?有人可以提供有关如何执行此操作的分步说明吗?

windows debugging gdb build toolchain

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

Java 正则表达式不会返回捕获组

在 Java 中,我想使用正则表达式解析格式为“MM/DD/YYYY”的日期字符串。我尝试用括号创建捕获组,但它似乎不起作用。它只返回整个匹配的字符串——而不是“MM”、“DD”和“YYYY”组件。

public static void main(String[] args) {
    Pattern p1=Pattern.compile("(\\d{2})/(\\d{2})/(\\d{4})");
    Matcher m1=p1.matcher("04/30/1999");

    // Throws IllegalStateException: "No match found":
    //System.out.println("Group 0: "+m1.group(0));

    // Runs only once and prints "Found: 04/30/1999".
    while (m1.find()){
        System.out.println("Found: "+m1.group());
    }
    // Wanted 3 lines: "Found: 04", "Found: 30", "Found: 1999"
}
Run Code Online (Sandbox Code Playgroud)

group带有参数 ( m1.group(x))的 " " 函数似乎根本不起作用,因为无论我给它什么索引,它都会返回异常。循环find()'s 仅返回单个完整匹配“04/30/1999”。正则表达式中的括号好像完全没用!

这在 Perl 中很容易做到:

my $date = "04/30/1999";
my ($month,$day,$year) = $date =~ m/(\d{2})\/(\d{2})\/(\d{4})/;
print "Month: ",$month,", day: ",$day,", year: ",$year;
# Prints:
# …
Run Code Online (Sandbox Code Playgroud)

java regex

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

Perl:如何全局访问所有且仅子目录?

我正在尝试编写一个 Perl 脚本来执行预排序目录遍历。我需要它来获取给定目录的所有子目录,包括隐藏的子目录。不幸的是,当我尝试以这种方式进行通配时:

<$dir/* $dir/.*>

... 原因 ”。” 和“..”也会被返回,这会扰乱我的函数,因为它会导致无限循环。如何获取$dir 的子文件夹(常规和隐藏),而不获取当前或上层目录?

例如,如果我的文件夹是“dir”并且它包含以下子目录:

你好
.hiddendir
“名称中带有空格的目录”
“名称中带有空格的.hidden目录”
dir2

...我想得到一个只有这些而不是“.”的数组。或者 ”..”。

我不在乎文件是否也出现,因为我稍后使用“if (-d $dir)”。有没有办法可以测试通配数组的元素是否等于当前目录或父目录,以便我可以排除它们?

谢谢

directory perl hidden glob traversal

0
推荐指数
1
解决办法
4120
查看次数

如何对C++数组进行值初始化?

1)在C++中,提供的初始化列表{}是一样的{0}吗?声明是:

int x[10]={};

int x[10]={0};

两个都生成相同的数组,所有元素都初始化为0?

2)在NULL不为0的系统/编译器上,指针数组的默认值初始化是将元素设置为NULL还是0?应该/可以使用以下哪些陈述?

int *x[10]={NULL};

int *x[10]={0};

int *x[10]={};

如何new使用空括号的值初始值设定项 - 它们是使用NULL还是0作为初始值设定项?

int **x=new int*[10]();

c++ default initializer

0
推荐指数
1
解决办法
144
查看次数

Perl数组引用列表

我有一个数组引用列表: my @a = ([1,2],[3,4]) 如何使用@a((1,2))中的第一个数组获得一个名为"@b"的数组?我尝试了各种解除引用的组合,但它们似乎都会抛出错误.

arrays perl list dereference

0
推荐指数
1
解决办法
63
查看次数