标签: file-io

以'rt'和'wt'模式打开文件

在这里几次我已经看到人们使用rtwt模式来读写文件.

例如:

with open('input.txt', 'rt') as input_file:
     with open('output.txt', 'wt') as output_file: 
         ...
Run Code Online (Sandbox Code Playgroud)

我不明白的方式记载,但因为open()不抛出一个错误-看起来几乎是合法的使用.

是什么状况,使用wtvs wrtvs 之间有什么区别r吗?

python file-io file

94
推荐指数
2
解决办法
7万
查看次数

使用PHP提供文件的最快方法

我正在尝试组合一个接收文件路径的函数,识别它是什么,设置适当的头,并像Apache一样提供服务.

我这样做的原因是因为我需要在提供文件之前使用PHP来处理有关请求的一些信息.

速度至关重要

virtual()不是一个选项

必须在共享托管环境中工作,用户无法控制Web服务器(Apache/nginx等)

这是我到目前为止所得到的:

File::output($path);

<?php
class File {
static function output($path) {
    // Check if the file exists
    if(!File::exists($path)) {
        header('HTTP/1.0 404 Not Found');
        exit();
    }

    // Set the content-type header
    header('Content-Type: '.File::mimeType($path));

    // Handle caching
    $fileModificationTime = gmdate('D, d M Y H:i:s', File::modificationTime($path)).' GMT';
    $headers = getallheaders();
    if(isset($headers['If-Modified-Since']) && $headers['If-Modified-Since'] == $fileModificationTime) {
        header('HTTP/1.1 304 Not Modified');
        exit();
    }
    header('Last-Modified: '.$fileModificationTime);

    // Read the file
    readfile($path);

    exit();
}

static function mimeType($path) {
    preg_match("|\.([a-z0-9]{2,4})$|i", $path, $fileSuffix);

    switch(strtolower($fileSuffix[1])) …
Run Code Online (Sandbox Code Playgroud)

php performance file-io x-sendfile

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

从内部存储中删除文件

我正在尝试删除存储在内部存储中的图像.到目前为止我已经想出了这个:

File dir = getFilesDir();
File file = new File(dir, id+".jpg");
boolean deleted = file.delete();
Run Code Online (Sandbox Code Playgroud)

这是另一个问题,答案是:

File dir = getFilesDir();
File file = new File(dir, "my_filename");
boolean deleted = file.delete();
Run Code Online (Sandbox Code Playgroud)

我的例子总是返回false.我可以fx 2930.jpg在eclipse中看到DDMS中的文件.

file-io android

93
推荐指数
5
解决办法
14万
查看次数

PHP:如何检查图像文件是否存在?

我需要查看我的cdn上是否存在特定图像.

我尝试过以下内容并不起作用:

if (file_exists(http://www.example.com/images/$filename)) {
    echo "The file exists";
} else {
    echo "The file does not exist";
}
Run Code Online (Sandbox Code Playgroud)

即使图像存在或不存在,它总是说"文件存在".我不确定为什么它不起作用......

php file-io image file

93
推荐指数
8
解决办法
26万
查看次数

ValueError:关闭文件的I/O操作

import csv    

with open('v.csv', 'w') as csvfile:
     cwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)

for w, c in p.iteritems():
    cwriter.writerow(w + c)
Run Code Online (Sandbox Code Playgroud)

这里,p是一本字典,w并且c都是字符串.

当我尝试在文件中写入时,它报告错误:

ValueError : I/O operation on closed file.
Run Code Online (Sandbox Code Playgroud)

帮助我,我是python的新手.我正在使用Python 2.7.3提前谢谢你.

python csv io file-io

91
推荐指数
2
解决办法
24万
查看次数

在Linux内核模块中读/写文件

我知道所有关于为什么不应该从内核读/写文件的讨论,而是如何使用/ procnetlink来做到这一点.无论如何我想读/写.我也读过" 驾驶我的坚果 - 你应该在内核中做的事情".

但问题是2.6.30不能导出sys_read().相反,它包含在内SYSCALL_DEFINE3.因此,如果我在我的模块中使用它,我会收到以下警告:

WARNING: "sys_read" [xxx.ko] undefined!
WARNING: "sys_open" [xxx.ko] undefined!
Run Code Online (Sandbox Code Playgroud)

显然insmod无法加载模块,因为链接没有正确发生.

问题:

  • 如何在2.6.22之后在内核中读/写(哪里sys_read()/ sys_open()不导出)?
  • 一般来说,如何使用SYSCALL_DEFINEn()内核中包含宏的系统调用?

c file-io kernel-module linux-kernel

89
推荐指数
2
解决办法
10万
查看次数

Windows上可靠的File.renameTo()替代方案?

Java File.renameTo()似乎是有问题的,特别是在Windows上.正如API文档所说,

此方法行为的许多方面本质上依赖于平台:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是原子的,如果具有目标抽象路径名的文件可能不会成功已经存在.应始终检查返回值以确保重命名操作成功.

就我而言,作为升级过程的一部分,我需要移动(重命名)一个可能包含千兆字节数据的目录(许多子目录和不同大小的文件).移动总是在同一个分区/驱动器内完成,因此没有必要实际移动磁盘上的所有文件.

这里不应该有任何文件锁定的目录中的内容被移动了,不过,很多时候,renameTo()无法完成其工作,并返回false.(我只是猜测某些文件锁可能会在Windows上随意过期.)

目前我有一个使用复制和删除的回退方法,但这很糟糕,因为它可能需要长时间,具体取决于文件夹的大小.我还在考虑简单地记录用户可以手动移动文件夹以避免等待数小时的事实.但正确的方式显然是自动而快速的.

所以我的问题是,您是否知道使用普通JDK或某些外部库在Windows上使用Java快速移动/重命名的另一种可靠方法.或者,如果您知道一种简单的方法来检测和释放给定文件夹及其所有内容(可能是数千个单独的文件)的任何文件锁,那也没关系.


编辑:在这种特殊情况下,我们似乎只是renameTo()考虑了一些事情而离开了; 看到这个答案.

java windows file-io file

88
推荐指数
5
解决办法
7万
查看次数

jQuery:从<input type ="file"/>中获取文件名

此代码应该在IE中工作(甚至不在Firefox中测试),但事实并非如此.我想要的是显示附件的名称.有帮助吗?

<html>
<head>
  <title>example</title>    
  <script type="text/javascript" src="../js/jquery.js"></script>
  <script type="text/javascript">  
        $(document).ready( function(){            
      $("#attach").after("<input id='fakeAttach' type='button' value='attach a file' />");      
      $("#fakeAttach").click(function() {            
        $("#attach").click();        
        $("#maxSize").after("<div id='temporary'><span id='attachedFile'></span><input id='remove' type='button' value='remove' /></div>");        
        $('#attach').change(function(){
          $("#fakeAttach").attr("disabled","disabled");          
          $("#attachedFile").html($(this).val());
        });        
        $("#remove").click(function(e){
          e.preventDefault();
          $("#attach").replaceWith($("#attach").clone());
          $("#fakeAttach").attr("disabled","");
          $("#temporary").remove();
        });
      })
    }); 
  </script> 
</head>
<body>
  <input id="attach" type="file" /><span id="maxSize">(less than 1MB)</span>    
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

file-io jquery events copy

88
推荐指数
3
解决办法
19万
查看次数

当"参数列表太长"时,如何删除超过3天的所有文件?

我有一个日志文件目录,里面有82000个文件和目录(大约一半).

我需要删除超过3天的所有文件和目录.

在一个包含37000个文件的目录中,我能够通过以下方式执行此操作:

find * -mtime +3 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

但是对于82000个文件/目录,我收到错误:

/ usr/bin/find:参数列表太长

如何解决此错误,以便删除超过3天的所有文件/目录?

linux file-io resource-cleanup

88
推荐指数
3
解决办法
18万
查看次数

替换文件内容中的字符串

如何打开文件Stud.txt,然后用"Orange"替换"A"的任何出现?

python string file-io

87
推荐指数
7
解决办法
18万
查看次数