标签: filehandle

用Python读取整个文件

如果你读取整个文件,content = open('Path/to/file', 'r').read()文件句柄是否保持打开状态直到脚本退出?是否有更简洁的方法来读取整个文件?

python file-io filehandle

333
推荐指数
2
解决办法
42万
查看次数

在Java(TM)Platform SE二进制文件中打开

我试图删除一个文件,我有两个,一个稍微改变,所以我可以删除旧文件,并用我更改的新文件替换它.当我尝试删除该文件时,我收到错误消息"正在使用的文件",其中表示该操作无法完成,因为该文件是在Java(TM)Platform SE二进制文件中打开的.

我怎么关闭它?

java file-io file file-locking filehandle

34
推荐指数
3
解决办法
8万
查看次数

如何检查文件句柄是否在Perl中打开?

有没有办法检查文件是否已在Perl中打开?我想要一个读取文件访问权限,所以不要求flock.

 open(FH, "<$fileName") or die "$!\n" if (<FILE_IS_NOT_ALREADY_OPEN>);
 #  or something like
 close(FH) if (<FILE_IS_OPEN>);
Run Code Online (Sandbox Code Playgroud)

perl file-io filehandle

32
推荐指数
4
解决办法
5万
查看次数

我怎样才能使用__DATA__两次?

我该怎么用__DATA__两次?

#!/usr/local/bin/perl
use warnings;
use 5.012;

while ( <DATA> ) {
    print;
}

while ( <DATA> ) {
    chomp if $. == 1;
    print scalar reverse;
    print "\n" if eof;
}
Run Code Online (Sandbox Code Playgroud)
__DATA__
one
two
three
four
five
six
Run Code Online (Sandbox Code Playgroud)

perl filehandle

30
推荐指数
2
解决办法
8296
查看次数

Ruby在哪里跟踪其打开的文件描述符?

什么这个问题是不是关于

这个问题不是关于如何使用File #close或File#open block语法自动关闭文件.这是一个关于Ruby在运行时存储其打开文件描述符列表的问题.

实际问题

如果您的程序具有开放描述符,但您无权访问相关的文件或IO对象,那么如何找到对当前打开的文件描述符的引用?举个例子:

filename='/tmp/foo'
%x( touch "#{filename}" )
File.open(filename)
filehandle = File.open(filename)
Run Code Online (Sandbox Code Playgroud)

第一个File实例被打开,但对象的引用不存储在变量中.第二个实例被存储在文件句柄,其中I可以很容易地与#inspect或#关闭访问它.

但是,丢弃的File对象没有消失; 它只是无法以任何明显的方式访问.在对象完成之前,Ruby必须在某个地方跟踪它...但在哪里?

ruby io file-io file-descriptor filehandle

21
推荐指数
1
解决办法
4833
查看次数

为什么Image.FromFile有时会保持文件句柄打开?

我在ASP.NET应用程序中使用.NET中的GDI +进行了大量的图像处理.

我经常发现Image.FromFile()保持文件句柄打开.

为什么是这样?在没有保留文件句柄的情况下打开图像的最佳方法是什么.

  • 注意:我没有做任何愚蠢的事情,就像保持Image对象一样 - 即使我是,我也不希望文件句柄保持活动状态

gdi+ filehandle

20
推荐指数
3
解决办法
1万
查看次数

我可以在Perl中找到文件句柄中的文件名吗?

open(my $fh, '>', $path) || die $!;
my_sub($fh);
Run Code Online (Sandbox Code Playgroud)

my_sub()能以某种方式从$ fh推断出$ path吗?

perl filenames filehandle

20
推荐指数
3
解决办法
1万
查看次数

Perl - while(<>)文件处理

一个简单的程序,带有while( <> )句柄文件作为arguments(./program 1.file 2.file 3.file)和Unix系统的标准输入.

我认为它将它们连接在一起,并且工作是一行一行的.问题是,我怎么知道我正在使用第一个文件?然后是第二个.

举个简单的例子,我想在一行中打印文件的内容.

while( <> ){
    print "\n" if (it's the second file already);
    print $_;
}
Run Code Online (Sandbox Code Playgroud)

perl cycle filehandle while-loop

18
推荐指数
2
解决办法
6万
查看次数

关闭进程中的所有打开文件

如何查找进程中的所有打开文件(来自内部)?

fork()(之前exec())之后知道这似乎很有用.

我知道它的存在性getdtablesize()和可移植性sysconf(_SC_OPEN_MAX),但是尝试关闭每个有效的文件描述符似乎效率低下,无论是否有一个打开的文件.(我也意识到过早优化的危险,这更多是关于美学我猜:-)

unix process filehandle

17
推荐指数
3
解决办法
2万
查看次数

什么是首选的跨平台IPC Perl模块?

我想创建一个简单的IO对象,它表示打开到另一个程序的管道,我可以在我的应用程序运行时定期写入另一个程序的STDIN.我希望它能够防弹(因为它可以捕获所有错误)和跨平台.我能找到的最佳选择是:

open

sub io_read {
    local $SIG{__WARN__} = sub { }; # Silence warning.
    open my $pipe, '|-', @_ or die "Cannot exec $_[0]: $!\n";
    return $pipe;
}
Run Code Online (Sandbox Code Playgroud)

好处:

  • 跨平台
  • 简单

缺点

  • 没有$SIG{PIPE}从管道程序捕获错误
  • 是否有其他错误?

IO ::管

sub io_read {
    IO::Pipe->reader(@_);
}
Run Code Online (Sandbox Code Playgroud)

好处:

  • 简单
  • 返回OO接口的IO :: Handle对象
  • 由Perl核心支持.

缺点

  • 仍然没有$SIG{PIPE}从管道程序中捕获错误
  • Win32不支持(或者,至少,它的测试被跳过)

IPC ::运行

在IPC :: Run中没有用于写入文件句柄的接口,只是附加到标量.这似乎......很奇怪.

IPC :: RUN3

这里也没有文件句柄接口.我可以使用代码引用,它将被重复调用以假脱机到子代,但是看看源代码,它似乎实际写入临时文件,然后打开它并将内容假脱机到管道命令STDIN.世界卫生大会?

IPC :: Cmd的

仍然没有文件句柄接口.


我在这里错过了什么?似乎这应该是一个已经解决的问题,而且我有点惊讶它不是.IO :: Pipe最接近我想要的,但缺乏$SIG{PIPE}错误处理和缺乏对Windows的支持是令人痛苦的.JDWIM的管道模块在哪里?

perl ipc pipe filehandle

16
推荐指数
1
解决办法
2084
查看次数

标签 统计

filehandle ×10

perl ×5

file-io ×4

cycle ×1

file ×1

file-descriptor ×1

file-locking ×1

filenames ×1

gdi+ ×1

io ×1

ipc ×1

java ×1

pipe ×1

process ×1

python ×1

ruby ×1

unix ×1

while-loop ×1