Python中的文件输入输出问题
作者:waifdzdn 发布时间:2022-06-12 05:22:24
Python文件输入输出
本文以.txt文件为例,说明Python从.txt文件中读取内容和向.txt文件写入内容的方法。
a.txt文件内容:
犬吠水声中,桃花带雨浓。
树深时见鹿,溪午不闻钟。
野竹分青霭,飞泉挂碧峰。
无人知所去,愁倚两三松。
文件输入
读取文件:
open(filename, mode)
open返回一个文件对象。
第一个参数是一个包含文件名的字符串。
第二个参数是描述文件的使用模式,mode='r’表示只读,mode='w’表示只写,mode=‘r+’表示可读可写,mode=‘a’表示打开文档并把要写的内容附在文档末尾,不会删除文档已有内容。
默认模式为’r’。
poem = open('./a.txt', 'r')
print(poem)
# 输出
# <_io.TextIOWrapper name='./a.txt' mode='r' encoding='UTF-8'>
poem = open('./a.txt', 'r')
print(list(poem))
# 输出
# ['犬吠水声中,桃花带雨浓。\n', '树深时见鹿,溪午不闻钟。\n', '野竹分青霭,飞泉挂碧峰。\n', '无人知所去,愁倚两三松。\n']
通常我们使用with关键字来读取文件对象,with关键字可以在with语句结束后自动关闭文件,避免一直占用计算机内存资源。
with open('./a.txt', 'r') as f:
d = f.read()
print(d)
print(f.closed)
# 输出
# 犬吠水声中,桃花带雨浓。
# 树深时见鹿,溪午不闻钟。
# 野竹分青霭,飞泉挂碧峰。
# 无人知所去,愁倚两三松。
# True
除了读取文件中的所有内容,我们还可以一行一行的读取文件。
with open('./a.txt') as f:
for line in f:
print(line)
# 输出
# 犬吠水声中,桃花带雨浓。
# 树深时见鹿,溪午不闻钟。
# 野竹分青霭,飞泉挂碧峰。
# 无人知所去,愁倚两三松。
因为在每一行末尾处都带有换行符,因此每行之间都有一行为空。可以验证一下:
with open('./a.txt') as f:
d = f.readlines()
print(d)
# 输出
# ['犬吠水声中,桃花带雨浓。\n', '树深时见鹿,溪午不闻钟。\n', '野竹分青霭,飞泉挂碧峰。\n', '无人知所去,愁倚两三松。\n']
我们可以通过str.strip([chars])函数来删除字符串末尾的换行符。
strip()函数可以删除字符串首尾的指定字符或者字符串,参数chars指定了要删除的字符的集合。
如果没有指定,则默认为空格或者换行符。
但是strip()只能删除开头或者结尾的字符或字符串,不能删除中间部分的字符。
with open('./a.txt') as f:
for line in f:
print(line.strip())
# 输出
# 犬吠水声中,桃花带雨浓。
# 树深时见鹿,溪午不闻钟。
# 野竹分青霭,飞泉挂碧峰。
# 无人知所去,愁倚两三松。
因为字符串是不可变对象,因此,strip()函数并不是在原来的字符串中直接进行删除,而是将删除首尾字符后的字符串作为一个新对象并返回。
可以验证一下:
a = ' special ' # 创建一个字符串对象并将变量a指向它
print(id(a)) # 打印a在内存中的地址
a = a.strip() # 将删除首尾空格后的字符串作为一个新对象,并将a指向它
print(id(a)) # 打a串在内存中的地址
# 输出
# 140251513494960
# 140251513470680
可得看到,删除前后的字符串地址并不相同,说明它们是不同的对象。
文件输出
with open('./a.txt', 'a') as f:
f.write('作者:李白\n')
with open('./a.txt', 'r') as f:
for line in f:
print(line.strip())
# 输出
# 犬吠水声中,桃花带雨浓。
# 树深时见鹿,溪午不闻钟。
# 野竹分青霭,飞泉挂碧峰。
# 无人知所去,愁倚两三松。
# 作者:李白
Python输入输出语法
Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。下面我们来介绍一下python的输入输出用法并举几个案例深入学习一下。
输入和输出
1、输出
在Python中使用print()函数进行输出。
输出字符串时可用单引号或双引号括起来;
输出变量时,可不加引号;
变量与字符串同时输出或多个变量同时输出时,需用“,”隔开各项。
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=“”
例:使用print()函数输出数据。
print("这是一个输出示例") # print()函数使用双引号输出示例
url = 'www.xxx.com' # 创建变量url,赋值为'www.xxx.com'
print('我们的网址是', url) # print()函数使用单引号输出变量url
运行结果如下。
2、输入
Python提供了input()函数用于获取用户键盘输入的字符。
input()函数让程序暂停运行,等待用户输入数据,当获取用户输入后,Python将其以字符串的形式存储在一个变量中,方便后面使用。
例:使用input()函数实现输入。
password = input("请输入密码:") # 输入数据赋给变量password
print('您刚刚输入的密码是:', password) # 输出数据
运行结果如下。
案例
例1:求两数之和
编写程序,要求输入两个整数,求两数之和后输出。
(1)可使用int()函数将输入的字符串转化为整型数据。
(2)可使用float()函数将字符串转化为浮点型数据。
a = input("请输入第一个整数:") # 输入变量a的值
b = input("请输入第二个整数:") # 输入变量b的值
a = int(a) # 将变量a转换为整型数
b = int(b) # 将变量b转换为整型数
c = a + b # 两数相加赋给c
print("两数之和为:", c) # 输出c的值
运行结果如下。
例2:求三角形的面积
编写程序,要求输入三角形的三条边(假设给定的三条边符合构成三角形的条件:任意两边之和大于第三边),计算三角形的面积并输出。
import math # 导入math模块
a = int(input("请输入三角形的第一条边:")) # 输入第一条边并将其转换为整型
b = int(input("请输入三角形的第二条边:")) # 输入第二条边并将其转换为整型
c = int(input("请输入三角形的第三条边:")) # 输入第三条边并将其转换为整型
s = 1 / 2 * (a + b + c) # 计算s
area = math.sqrt(s * (s - a) * (s - b) * (s - c)) # 调用sqrt函数计算面积
print("此三角形面积为:", area) # 输出三角形面积
运行结果如下。
来源:https://blog.csdn.net/w1301100424/article/details/92800041


猜你喜欢
- 本文实例讲述了python执行等待程序直到第二天零点的方法。分享给大家供大家参考。具体分析如下:如果需要通过python每天凌晨定时执行执行
- 一、分析网页1. 打开网页,在搜索框输入百度翻译并进入百度翻译网站中。F12调出开发者工具,点击Network(网络)\ Fetch/XHR
- 目录结构:contents structure [-]在开始文章之前,先贴上一张Iterable、Iterator与Generator之间的
- 一、什么是frame&frame切换?frame:HTML页面中的一种框架,主要作用是在当前页面中指定区域显示另一页面元素;fram
- /* Cookie Library -- "Night of the Living Cookie" Version (2
- 1. 数据类型 type()#!/usr/bin/env python# -*- coding: utf-8 -*-# Yongqiang
- 本文实例讲述了python基于pygame实现响应游戏中事件的方法。分享给大家供大家参考,具体如下:先看一下我做的demo效果:当玩家按下键
- python代码如下:import numpy as np# Write a function that takes as input a
- 许多共享主机的服务提供商不允许运行你自己的服务进程,也不允许修改 httpd.conf 文件。 尽管如此,仍然有可能通过Web服务器产生的子
- 首页url与视图函数的映射是通过@app.route()装饰器实现的。只有一个斜杠代表的是根目录——
- 附加数据库就可以完成. 附加数据库: &nb
- 前言 Javascript是一门很自由的语言,在JS里,里面一切的东西都是变量.包括函数在内. 基础 函数 (定义)(参数1[,参数2..]
- 本文实例为大家分享了python实现俄罗斯方块的具体代码,供大家参考,具体内容如下#coding=utf-8 from tkinter im
- MatplotlibMatplotlib 是Python中类似 MATLAB 的绘图工具,熟悉 MATLAB 也可以很快的上手 Matplo
- 本文实例讲述了Python实现的弹球小游戏。分享给大家供大家参考,具体如下:弹球1. Ball 类draw负责移动Ball碰撞检测,反弹,B
- Pandas 按周、月、年、统计数据介绍将日期转为时间格式 并设置为索引import pandas as pddata=pd.read_ex
- 有些 SQL Server 2000 Personal Edition 实例和 SQL Server 2000 Desktop Engine
- Python jieba分词如何添加自定义词和去除不需要长尾词通过如下代码,读取一个txt的高频词汇:# 找到高频词汇 &nb
- 如下所示:希望可以从对admin提交的密码加密,并验证电话号码均为数字。查看admin.pyfrom django.contrib impo
- pandas有groupby分组函数和sort_values排序函数,但是如何对dataframe分组之后排序呢?In [70]: df =