搜索
首页后端开发Python教程python文件File输入输出的基本操作方法

1. Python 文件I/O
  本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档。

2.打印到屏幕
  最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式。此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下:

示例1:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/25 15:12
# @Author  : wwyx
print "python 是一门面向对象语言"

运行示例1结果如下:

python 是一门面向对象语言

3.读取键盘输入
Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘。如下:

  • raw_input

  • input

raw_input函数
  raw_input([prompt]) 函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符):
  示例2:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/25 15:12
# @Author  : wwyx
strs = raw_input("请输入你想输入的字符串:")
print "您输入的字符串是:",strs

示例2 运行结果:

请输入你想输入的字符串:python
您输入的字符串是: python

input函数
  input([prompt]) 函数和 raw_input([prompt]) 函数基本类似,但是 input 可以接收一个Python表达式作为输入,并将运算结果返回。

示例3:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/25 15:12
# @Author  : wwyx

inputStr = input("可以输入表达式:")
print "运行输入的结果:", inputStr

示例3 运行结果:

可以输入表达式:[x*4 for x in (2,3,4)]
运行输入的结果: [8, 12, 16]

4.打开和关闭文件
  现在,您已经可以向标准输入和输出进行读写。现在,来看看怎么读写实际的数据文件。
  Python 提供了必要的函数和方法进行默认情况下的文件基本操作。你可以用 file 对象做大部分的文件操作。
open 函数
  你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
语法:

file object = open(file_name [, access_mode][, buffering]

各个参数的细节如下:

  • file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。

  • access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。

  • buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

不同模式打开文件的完全列表:
  模式 描述

  1. r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

  2. rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

  3. r+ 打开一个文件用于读写。文件指针将会放在文件的开头。

  4. rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

  5. w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

  6. wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

  7. w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

  8. wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

  9. a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

  10. ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

  11. a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

  12. ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

File对象的属性
  一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息。
  以下是和file对象相关的所有属性的列表:
  属性 描述

  • file.closed 返回true如果文件已被关闭,否则返回false。

  • file.mode 返回被打开文件的访问模式。

  • file.name 返回文件的名称。

  • file.softspace 如果用print输出后,必须跟一个空格符,则返回0。否则返回1。

示例4

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/25 15:12
# @Author  : wwyx
filetest = open("file.txt", "wb")

print "文件是否关闭:", filetest.closed
print "文件模式:", filetest.mode
print "文件名称:", filetest.name
print "是否强制在末尾加空格:", filetest.softspace

示例4 运行结果:

文件是否关闭: False
文件模式: wb
文件名称: file.txt
是否强制在末尾加空格: 0

close()方法
  File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
  当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。
  语法:

fileObject.close();

示例5

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/25 15:12
# @Author  : wwyx
filetest = open("file.txt", "wb")

print "文件是否关闭:", filetest.closed
print "文件模式:", filetest.mode
print "文件名称:", filetest.name
print "是否强制在末尾加空格:", filetest.softspace
print "关闭文件!"
filetest.close()  # 关闭文件
print "文件关闭成功!"

示例5 结果:

文件是否关闭: False
文件模式: wb
文件名称: file.txt
是否强制在末尾加空格: 0
关闭文件!
文件关闭成功!

5.读写文件
  file对象提供了一系列方法,能让我们的文件访问更轻松。来看看如何使用read()和write()方法来读取和写入文件。
  write()方法
  write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
  write()方法不会在字符串的结尾添加换行符('\n'):
  语法:

fileObject.write(string);

在这里,被传递的参数是要写入到已打开文件的内容。
 示例6

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/25 15:12
# @Author  : wwyx
filetest = open("file.txt", "wb")
filetest.write("python 编程语言可以用到很多地方")
print "关闭文件!"
filetest.close()  # 关闭文件
print "文件关闭成功!"
print "重新打开读取文件!"
filetest = open("file.txt", "rb")
strs = filetest.read(1024)
print "文件我内容是:",strs

示例6 运行结果:

关闭文件!
文件关闭成功!
重新打开读取文件!
文件我内容是: python 编程语言可以用到很多地方

    read()方法
  read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
  语法:

fileObject.read([count])

  在这里,被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。

  用例参考示例6 

6文件位置

  • tell()方法告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。

  • seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。

  • 如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

示例7:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/25 15:12
# @Author  : wwyx
filetest = open("file.txt", "wb")
filetest.write("python 编程语言可以用到很多地方")
# 打开文件
filetest = open("file.txt", "rb")
strs = filetest.read(10)
print "文件内容是:", strs
# 定位文件位置
p = filetest.tell()
print "文件当前位置", p

# 重新设置文件读取的位置
filetest.seek(0, 0)
print "将文件位置重新设置成功!!!"

print "重新设置指针位置之后读取的文件"
strs = filetest.read(10)
print "文件内容是:", strs


print "关闭文件!"
filetest.close()  # 关闭文件
print "文件关闭成功!"

示例7运行结果:

文件内容是: python 编
文件当前位置 10将文件位置重新设置成功!!!
重新设置指针位置之后读取的文件
文件内容是: python 编
关闭文件!
文件关闭成功!

7.重命名和删除文件
  Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。
  要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。
  rename()方法:
  rename()方法需要两个参数,当前的文件名和新文件名。
  语法:

os.rename(current_file_name, new_file_name)

示例8:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/25 15:12
# @Author  : wwyx
import os
filetest = open("myfile.txt", "wb")
# 文件写入内容
filetest.write("python 基础学习")
# 未年检关闭!
filetest.close()
# 文件重新命名
os.rename("myfile.txt", "renamefile.txt")

print "重新命名后的文件名称是:", filetest.name
# 以只读方式打开重命名文件
fileremane = open("renamefile.txt", "r")
strs = fileremane.read(100)
print "文件名称:", fileremane.name
print "读取修改后文件的内容是:", strs

示例 8 运行结果:

重新命名后的文件名称是: myfile.txt
文件名称: renamefile.txt
读取修改后文件的内容是: python 基础学习

注意:如果目录下面已经存在相关名称文件,那么重命名就会出现异常

  remove()方法
  你可以用remove()方法删除文件,需要提供要删除的文件名作为参数。
  语法:

os.remove(file_name)

示例 9

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/25 15:12
# @Author  : wwyx
import os
filetest = open("myfile.txt", "wb")
# 文件写入内容
filetest.write("python 基础学习")
# 未年检关闭!
filetest.close()
# 删除文件
os.remove("myfile.txt")
# 重新读取删除掉的文件
filetest = open("myfile.txt", "rb")
# 打印出文件内容
print "文件内容是:", filetest.read(10)

示例 9 运行结果

Traceback (most recent call last):
  File "E:/python/hello/untitled3/filetest.py", line 14, in 4225fa317875f3e92281a7b1a5733569
    filetest = open("myfile.txt", "rb")
IOError: [Errno 2] No such file or directory: 'myfile.txt'

运行结果:因为读取了一个删除掉的文件,所以会报异常

8. Python里的目录
  所有文件都包含在各个不同的目录下,不过Python也能轻松处理。os模块有许多方法能帮你创建,删除和更改目录。
  mkdir()方法
  可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。
  语法:

os.mkdir("newdir")

  chdir()方法
  可以用chdir()方法来改变当前的目录,修改目录路径。chdir()方法需要的一个参数是你想设成当前目录的目录名称。
  语法:

os.chdir("newdir")

   getcwd()方法

  getcwd()方法显示当前的工作目录。
  语法:

os.getcwd()

  rmdir()方法
  rmdir()方法删除目录,目录名称以参数传递。
  在删除这个目录之前,它的所有内容应该先被清除。
  语法:

os.rmdir('dirname')

示例10:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/25 15:12
# @Author  : wwyx
import os
# 创建一个目录
os.mkdir("mydir")
# 获取当前目录
nowdir = os.getcwd()
print "当前目录:", nowdir
# 重新定位目录,修改目录路径
os.chdir("mydir")
# 获取修改后的目录路径
updatedir = os.getcwd()
print "修改后的当前目录是:",updatedir
ind = updatedir.rfind("\\")
print "截取后的字符串", ind
print "type:", type(updatedir)
newdir = updatedir[0:int(ind)]
print "new dir", newdir
# 重新定位目录,修改目录路径
os.chdir(newdir)
# 获取修改后的目录路径
updatedir = os.getcwd()
print "修改后的当前目录是:",updatedir
# 删除目录
os.rmdir("mydir")
# 获取删除后的目录路径
deletedir = os.getcwd()
print "修改后的当前目录是:",deletedir

示例10 运行结果:

当前目录: E:\python\hello\untitled3
修改后的当前目录是: E:\python\hello\untitled3\mydir
截取后的字符串 25type: 5f6e1201c151069e1e762ffdb7cb44a1new dir E:\python\hello\untitled3
修改后的当前目录是: E:\python\hello\untitled3
修改后的当前目录是: E:\python\hello\untitled3

9.文件、目录相关的方法
  三个重要的方法来源能对Windows和Unix操作系统上的文件及目录进行一个广泛且实用的处理及操控,如下:

  • File 对象方法: file对象提供了操作文件的一系列方法。

  • OS 对象方法: 提供了处理文件及目录的一系列方法。

以上是python文件File输入输出的基本操作方法的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python vs. C:了解关键差异Python vs. C:了解关键差异Apr 21, 2025 am 12:18 AM

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

Python vs.C:您的项目选择哪种语言?Python vs.C:您的项目选择哪种语言?Apr 21, 2025 am 12:17 AM

选择Python还是C 取决于项目需求:1)如果需要快速开发、数据处理和原型设计,选择Python;2)如果需要高性能、低延迟和接近硬件的控制,选择C 。

达到python目标:每天2小时的力量达到python目标:每天2小时的力量Apr 20, 2025 am 12:21 AM

通过每天投入2小时的Python学习,可以有效提升编程技能。1.学习新知识:阅读文档或观看教程。2.实践:编写代码和完成练习。3.复习:巩固所学内容。4.项目实践:应用所学于实际项目中。这样的结构化学习计划能帮助你系统掌握Python并实现职业目标。

最大化2小时:有效的Python学习策略最大化2小时:有效的Python学习策略Apr 20, 2025 am 12:20 AM

在两小时内高效学习Python的方法包括:1.回顾基础知识,确保熟悉Python的安装和基本语法;2.理解Python的核心概念,如变量、列表、函数等;3.通过使用示例掌握基本和高级用法;4.学习常见错误与调试技巧;5.应用性能优化与最佳实践,如使用列表推导式和遵循PEP8风格指南。

在Python和C之间进行选择:适合您的语言在Python和C之间进行选择:适合您的语言Apr 20, 2025 am 12:20 AM

Python适合初学者和数据科学,C 适用于系统编程和游戏开发。1.Python简洁易用,适用于数据科学和Web开发。2.C 提供高性能和控制力,适用于游戏开发和系统编程。选择应基于项目需求和个人兴趣。

Python与C:编程语言的比较分析Python与C:编程语言的比较分析Apr 20, 2025 am 12:14 AM

Python更适合数据科学和快速开发,C 更适合高性能和系统编程。1.Python语法简洁,易于学习,适用于数据处理和科学计算。2.C 语法复杂,但性能优越,常用于游戏开发和系统编程。

每天2小时:Python学习的潜力每天2小时:Python学习的潜力Apr 20, 2025 am 12:14 AM

每天投入两小时学习Python是可行的。1.学习新知识:用一小时学习新概念,如列表和字典。2.实践和练习:用一小时进行编程练习,如编写小程序。通过合理规划和坚持不懈,你可以在短时间内掌握Python的核心概念。

Python与C:学习曲线和易用性Python与C:学习曲线和易用性Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境