这个 Python 文件读取测试有什么问题?
import os
import sys
fileList = os.listdir(sys.argv[1])
count = 0
for file in fileList:
try:
count += 1
print os.path.isfile(file)
if os.path.isfile(file)
print "File >> " + file
else
print "Dir >> " + file
except err:
print "ERROR: " + err
print ">> in file: " + file
Run Code Online (Sandbox Code Playgroud)
给出:
文件“test.py”,第 10 行 if os.path.isfile(file) ^ SyntaxError: 无效语法
为什么?
我有一段代码调用 Microsoft.VisualBasic.FileIO.FileSystem 类(在 Microsoft.VisualBasic 程序集中)中的 DeleteFile 方法,以便将文件发送到回收站而不是永久删除它。此代码位于托管 Windows 服务中,并在 Win Server 2k8 计算机(32 位)上运行。
相关行:
FileSystem.DeleteFile(file.FullName, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin, UICancelOption.DoNothing);
Run Code Online (Sandbox Code Playgroud)
当然,我有“using Microsoft.VisualBasic.FileIO;” 在类的顶部,我验证了被调用的方法确实位于该命名空间中的 FileSystem 类上。在上面的行中,我引用了一个本地变量“file” - 这是本地文件的 FileInfo(例如,C:\path\to\file.txt),我确信它存在。应用程序可以完全控制文件及其所在的目录。
当文件从其所在的目录中消失时,这似乎工作得很好。但是,该文件不会显示在回收站中。我尝试手动检查 C:\$Recycle.Bin 文件夹,因为我怀疑会话 0 中运行的 Windows 服务会使其最终进入不同的回收站,但所有回收站都显示为空。
有人知道导致这种行为的原因吗?
顺便说一句 - 机器上的相关驱动器(或任何其他驱动器)上绝对没有可用空间不足,并且文件非常小(几千字节,因此它不会超过回收站阈值)。
我们有大量数据,我们想对它们执行一些操作。删除重复项是主要操作之一。
前任。
a,me,123,2631272164
yrw,wq,1237,123712,126128361
yrw,dsfswq,1323237,12xcvcx3712,1sd26128361
Run Code Online (Sandbox Code Playgroud)
这是文件中的三个条目,我们希望在第一列的基础上删除重复项。因此,应删除第 3 行。每行可能有不同数量的列,但我们感兴趣的列将始终存在。
在内存中操作看起来不可行。
另一种选择是将数据存储在数据库中并从中删除重复项,但这也不是一项简单的任务。我应该遵循什么设计将数据转储到数据库并删除重复项?
我假设人们一定遇到过这样的问题并解决了它。
我们通常如何解决这个问题呢?
PS:请将此视为现实生活问题而不是面试问题;)
如果我有一个大小为 5 的文件,我使用 lseek 查找位置 10,然后使用 read 从该位置读取 1 个字节,则 read 系统调用的返回值为 0。我想知道 lseek/read/ 的返回值在以下情况下写入:如果我查找超过文件系统允许的最大文件大小,然后执行读取。我们可以找到这个位置吗/这是一个错误吗?如果不是,如果我在这里进行读取,读取的返回值是什么?0还是-1?
我正在读取一个以字节为单位的视频文件数据并将其发送到另一个文件,但收到的视频文件无法正常播放并且断断续续。
谁能解释一下为什么会发生这种情况,并感谢解决方案。
我的代码如下
import java.io.*;
public class convert {
public static void main(String[] args) {
//create file object
File file = new File("B:/music/Billa.mp4");
try
{
//create FileInputStream object
FileInputStream fin = new FileInputStream(file);
byte fileContent[] = new byte[(int)file.length()];
fin.read(fileContent);
//create string from byte array
String strFileContent = new String(fileContent);
System.out.println("File content : ");
System.out.println(strFileContent);
File dest=new File("B://music//a.mp4");
BufferedWriter bw=new BufferedWriter(new FileWriter(dest));
bw.write(strFileContent+"\n");
bw.flush();
}
catch(FileNotFoundException e)
{
System.out.println("File not found" + e);
}
catch(IOException ioe)
{
System.out.println("Exception while reading the …Run Code Online (Sandbox Code Playgroud) 因此,我有一个文本文件,其中包含以下格式的信息,包括姓名、电子邮件和电话号码。
Bill Molan, Bill.Molan@gmail.com, 612-789-7538
Greg Hanson, Greg.Hanson@gmail.com, 651-368-4558
Zoe Hall, Zoe.Hall@gmail.com, 952-778-4322
Henry Sinn, Henry.Sinn@gmail.com, 651-788-9634
Brittany Hudson, Brittany.Hudson@gmail.com, 612-756-4486
Run Code Online (Sandbox Code Playgroud)
当我的程序启动时,我想读取这个文件并将每一行放入一个新的 Person() 中,我最终会将其添加到列表中。我想读取每一行,然后使用逗号分隔每个字符串以放入 Person() 的构造函数中,这是一个基本类:
public PersonEntry(string n, string e, string p)
{
Name = n;
Email = e;
Phone = p;
}
Run Code Online (Sandbox Code Playgroud)
我做了一些查找,我认为使用流阅读器将有助于读取文本文件,但我不太确定从这里到哪里去。
我有一个 tcl 程序,在其中打开一个文件,如果不存在则创建用于写入。现在我正在其中记录一些 put 语句以进行调试。现在,在此过程结束时,我关闭该文件。但在中间我正在调用另一个过程,我也需要在该过程中的这个打开的文件中写入一些内容。所以我想做这样的事情:
proc ::myproc {args} {
set fp [open "C:\\log.txt" w+];
puts $fp "Checkpoint 1";
set retVal [::myprocII];
puts $fp "Checkpoint 2";
close $fp;
return 1;
}
proc ::myprocII {} {
set fp [open "C:\\log.txt" w+];
puts $fp "Checkpoint 3";
close $fp;
return 1;
}
Run Code Online (Sandbox Code Playgroud)
那么,当我在 myprocII 中打开同一文件并记录数据并关闭它时,这不是导致错误或异常的原因吗?然后,即使在关闭 myprocII 中的文件后,我仍在调用 proc myproc 中记录数据。我尝试对此进行测试,但由于我是从批处理文件运行它,因此在我弄清楚错误是什么之前窗口会关闭。
所以我想知道这是否正确,或者如果不正确,我如何继续将来自不同程序的数据附加到同一日志文件中。
我编写了一个在文件中写入值的守护进程。我观察到,当我继续在文件上写入时,文件中没有任何可见内容。另一方面,如果我使用fflush()方法,那么字符在文件中可见。为什么 fflush() 会有所不同?
我正在尝试读取一个动态更改的文件并在 jTextArea 中显示其内容。我正在使用缓冲阅读器进行阅读。
我尝试在控制台上显示内容,它工作正常,但不适用于 jTextArea。
我正在做类似的事情
while(true)
{
line = br.readLine();
if(line == null)
Thread.sleep();
else
System.out.println(line);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。谢谢
从 Inputstream ,我读取前 4 个字节并将它们打包以获得一些信息,在这种情况下是流的大小/长度。
为此,我使用从另一个项目复制的跟随代码(示例 1)
示例 1:使用字节数组,其中的值从 InputStream 读取到名为in_buf[]且长度为 4 且值为 {0,0,12,26} 的数组中。
示例 1
int size = (((in_buf[0] & 0xff) << 24) | ((in_buf[1] & 0xff) << 16) |
((in_buf[2] & 0xff) << 8) | (in_buf[3] & 0xff)); // result its 3098
Run Code Online (Sandbox Code Playgroud)
结果我变成了大小的值,很好,但是..
我需要解释这里发生的事情,我尝试拆分所有功能以更好地了解发生的情况并进行调试,然后我变成了以下结果
int byte1 = ((in_buf[0] & 0xff) << 24); // result 0
int byte2 = ((in_buf[1] & 0xff) << 16); // result 0
int byte3 = ((in_buf[2] & 0xff) << 8); …Run Code Online (Sandbox Code Playgroud)