牛骨文教育服务平台(让学习变的简单)

读取文件

本地文件

input_file = open("note.txt","r")
for line in input_file:
    line = line.strip() #去除前后空格
    print(line)
input_file.close()

若将其改为函数形式:

#filename.py
import sys

def process_file(filename):
"""Open, read, and print a file."""    
    input_file = open(filename,"r")
    for line in input_file:
        line = line.strip()
        print(line)
    input_file.close()
if __name__ == "__main__":
    process_file(sys.argv[1])

在命令行运行该文件,输入如下命令:

python filename.py test.txt

命令中的test.txt对应于sys.argv[i]

互联网上的文件

# coding=utf-8
import urllib.request
url = "http://www.weather.com.cn/adat/sk/101010100.html"
web_page = urllib.request.urlopen(url)
for line in web_page:
    line = line.strip()
    print(line.decode("utf-8")) #加上decode函数才能显示汉字
web_page.close()

输出结果:

{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"9","WD":"南风","WS":"2级","SD":"26%","WSE":"2","time":"10:20","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1014"}}

若是在命令行运行该文件,输入如下命令:

python filename.py

写入文件

再打开文件时,除了需要制定文件名外,还需要制定一个模式(“r”,”w”,”a”,分别对应于读取、写入、追加)。如果没有制定模式,则应用默认模式”r”。当以写入模式打开文件且该文件尚不存在时,就会创建出一个相应的新文件。
例如,将“Computer Science”放到文件test.txt中:

output_file = open("test.txt","w")
output_file.write("Computer Science")
output_file.close()

一个同时具有读取和写入功能的事例,从输入文件的每一行读取两个数字,在另外一个文件中输出这两个数字以及它们的和。

#test.py
def mysum(input_filename, output_filename):
    input_file = open(input_filename,"r")
    output_file = open(output_filename,"w")
    for line in input_file:
        operands = line.split()
        sum_value = float(operands[0]) + float(operands[1])
        new_line = line.rstrip() + " " + str(sum_value) + "
"
        output_file.write(new_line)
    output_file.close()

rstrip()函数用于去掉输入文件每行的换行符。

函数调用:

from test import *
mysum("test.txt", "test2.txt")