Python具备强大的解析能力,其中列表解析甚至可以作用在某些并非实际存储的序列上,任何可遍历对象都可以,包括可自动逐步读取的文件。
例如下面的代码将会从逐行读取一个文本文件,并且在每一行的最后加上一个逗号。
input_file_name = input('Please input the input file name : '); output_file_name = input('Please input the output file name : '); fin = open(input_file_name,'r'); fout = open(output_file_name,'w'); for line in fin: line = line.strip(' ') + ','; fout.write(line+' '); fout.close(); fin.close();
几乎同样的工作,用Java来实现可以这样写
import java.util.Date; import java.io.*; import java.sql.Timestamp; public class AddComma{ public static void main(String[] args){ if(args.length != 2){ System.out.println("Use AddComma command: java AddComma [input file name] [output file name]"); System.exit(-1); } try{ File finput = new File(args[0]); FileReader fr = new FileReader(finput); BufferedReader br = new BufferedReader(fr); File foutput = new File(args[1]); FileWriter fw = new FileWriter(foutput); BufferedWriter bw = new BufferedWriter(fw); String str_get; String str_line; Date startDate = new Date(); Long timestamp_start = startDate.getTime(); System.out.println("Program run at : "+timestamp_start.toString()); while((str_line = br.readLine()) != null){ str_get = str_line.trim() + ","; //System.out.println(str_get); bw.write(str_get); bw.newLine(); } br.close(); bw.close(); Date endDate = new Date(); Long timestamp_end = endDate.getTime(); System.out.println("Time elapse is : "+(timestamp_end - timestamp_start)+" milliseconds"); }catch(IOException e){ e.printStackTrace(); } } }
python 从一个文件中读取所有的整数,并且打印出来(这个文件中只有整数)
#coding=utf-8 fp = open('data.txt','r') for line in fp: for item in [int(x) for x in line.split(' ') if line.strip()]: print(item) fp.close()
从控制台读入一行数据,并且存放到一个列表当中
line = sys.stdin.readline() # 从控制台读入第一行输入 num = [int(x) for x in line.split(' ') if line.strip()] # 将第一行输入转换为list(列表类型)