Комбинированный ответ, включающий каталог или конкретный список аргументов имен файлов:
import sys
import os.path
import glob
def processFile(filename):
fileHandle = open(filename, "r")
for line in fileHandle:
# do some processing
pass
fileHandle.close()
def outputResults(filename):
output_filemask = "out"
fileHandle = open("%s.%s" % (filename, output_filemask), "w")
# do some processing
fileHandle.write('processed\n')
fileHandle.close()
def processFiles(args):
input_filemask = "log"
directory = args[1]
if os.path.isdir(directory):
print "processing a directory"
list_of_files = glob.glob('%s/*.%s' % (directory, input_filemask))
else:
print "processing a list of files"
list_of_files = sys.argv[1:]
for file_name in list_of_files:
print file_name
processFile(file_name)
outputResults(file_name)
if __name__ == '__main__':
if (len(sys.argv) > 1):
processFiles(sys.argv)
else:
print 'usage message'
Не используйте строки для представления файлов; используйте java.io.File:
http://java.sun.com/javase/6/docs/api/java/io/File.html#equals (java.lang.Object)
Я не думаю, что любой из существующих примеров на самом деле обрабатывает это правильно, необходимо записать файл в диск.
private boolean caseSensitivityCheck() {
try {
File currentWorkingDir = new File(System.getProperty("user.dir"));
File case1 = new File(currentWorkingDir, "case1");
File case2 = new File(currentWorkingDir, "Case1");
case1.createNewFile();
if (case2.createNewFile()) {
System.out.println("caseSensitivityCheck: FileSystem of working directory is case sensitive");
case1.delete();
case2.delete();
return true;
} else {
System.out.println("caseSensitivityCheck: FileSystem of working directory is NOT case sensitive");
case1.delete();
return false;
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
Записать файл с именем «HelloWorld»; попытаться прочитать файл с именем "hELLOwORLD"?
boolean isFileSystemCaseSensitive = !new File( "a" ).equals( new File( "A" ) );