小编Pjo*_*ern的帖子

perl打开文件名中包含变量的文件

我尝试打开文件夹中的文件列表.最后我想在其中插入一个HTML-Snippet.到目前为止,我可以打开文件夹并读取数组中的列表.没关系.但是当我尝试使用变量作为文件名打开文件时,我每次都会收到一条错误消息("权限被拒绝").无论我使用$ _还是将列表项的值放在变量中的其他变体.我在这里找到了类似的问题,但到目前为止还没有找到解决方案.这是我的代码:

use strict;
use warnings;

my ($line);

opendir (FOLDER,"path/to/folder/./") or die "$!";
my @folderlist = readdir(FOLDER);
my @sorted_folderlist = sort @folderlist;
close(FOLDER);

foreach (@sorted_folderlist) {
  my $filename = $_;
  open (READ, ">", "path/to/folder/$filename") or die "$!";
  # do something
  close (READ);
}
Run Code Online (Sandbox Code Playgroud)

这里有什么错误?我如何使用变量作为文件名打开文件?

Pjoern

这是我改变的代码,以回答1:

my $dh; 
opendir $dh, "dir/./" or die ... 
my @folderlist = grep { -f "dir/$_" } readdir $dh; 
close $dh; 
my @sorted_folderlist = sort @folderlist; 

foreach my $filename (@sorted_folderlist) { 
  open my $fh, "<", …
Run Code Online (Sandbox Code Playgroud)

arrays perl file

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

python按字母顺序排序带有前导数字的字符串

我有一个文件名列表,每个文件名都以一个前导号码开头:

10_file
11_file
1_file
20_file
21_file
2_file ...
Run Code Online (Sandbox Code Playgroud)

我需要按顺序排列:

1_file
10_file
11_file
2_file
21_file
22_file ...
Run Code Online (Sandbox Code Playgroud)

如果它们只是数字作为字符串('1')而没有下划线,我可以使用sorted()对它们进行排序.我已尝试使用不同的键属性的不同排序方法,也模块"natsort",但没有结果.我必须为此编写自己的算法吗?也许我可以提取前导数字并用它们进行排序?

更新所需列表以更正列表

python sorting string alphabetical-sort

-1
推荐指数
1
解决办法
859
查看次数

标签 统计

alphabetical-sort ×1

arrays ×1

file ×1

perl ×1

python ×1

sorting ×1

string ×1