详细讲解Python中的文件I/O操作

   这篇文章主要介绍了Python中的文件I/O操作,是Python入门中的基础知识,需要的朋友可以参考下

  本章将覆盖所有在Python中使用的基本I/O功能。有关更多函数,请参考标准Python文档。

  打印到屏幕上:

  产生输出最简单的方法是使用print语句,可以通过用逗号分隔的零个或多个表达式。该函数将传递到一个字符串表达式,并将结果写到标准输出,如下所示:

  ?

1
2
3

#!/usr/bin/python
 
print "Python is really a great language,", "isn't it?";

  这将产生结果输出在标准屏幕上,结果如下:

  ?

1

Python is really a great language, isn't it?

  读取键盘输入:

  Python提供了两个内置的函数来读取一行,从标准输入,默认情况下是来自键盘的文本。这些函数包括:

  raw_input

  input

  raw_input 函数:

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

  ?

1
2
3
4

#!/usr/bin/python
 
str = raw_input("Enter your input: ");
print "Received input is : ", str

  这将提示您输入字符串,它会在屏幕上显示相同的字符串。当输入“Hello Python!”,它的输出是这样的:

  ?

1
2

Enter your input: Hello Python
Received input is : Hello Python

  input函数:

  input([prompt]) 函数相当于raw_input,只是它假设输入的是一个有效的Python表达式,并返回计算结果。

  ?

1
2
3
4

#!/usr/bin/python
 
str = input("Enter your input: ");
print "Received input is : ", str

  对所输入这将产生结果如下:

  ?

1
2

Enter your input: [x*5 for x in range(2,10,2)]
Recieved input is : [10, 20, 30, 40]

  打开和关闭文件:

  到现在为止,已经了解读取和写入标准输入和输出。现在,我们看看如何用实际数据文件。

  Python提供了基本的函数和必要在默认情况下对文件进行操作的方法。可以使用一个文件对象file来做大部分文件操作。

  open 函数:

  想要读取或写入文件,必须使用Python内置的open()函数来打开它。该函数创建一个文件对象,这将用来调用与之关联的其他支持方式。

  语法:

  ?

1

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

  下面是参数的详细信息:

  file_name: file_name参数是一个字符串值,包含您要访问的文件的名称。

  access_mode: access_mode决定了文件必须被打开,即,读,写,追加等的可能值是下表中给定的一个完整的列表的模式。这是可选参数,默认文件存取方式为read (r)。

  buffering: 如果缓冲值被设置为0时,没有缓冲将发生。如果该缓冲值是1,行缓冲会在访问一个文件来执行。如果指定的缓冲值为大于1的整数,则缓冲作用将与所指示的缓冲区的大小进行。如果为负,则缓冲区的大小是系统默认(默认行为)。

  这里是打开一个文件的不同模式的列表:


  file 对象属性:

  一旦文件被打开,文件对象可以得到有关该文件的各种信息。

  下面是文件对象相关的所有属性的列表:


  例子:

  ?

1
2
3
4
5
6
7
8

#!/usr/bin/python
 
# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace

  这将产生以下结果:

  ?

1
2
3
4

Name of the file: foo.txt
Closed or not : False
Opening mode : wb
Softspace flag : 0

  close() 方法:

  一个文件对象的close()方法刷新未写入的信息,并关闭该文件的对象,在这之后没有数据内容可以执行写入。

  Python自动关闭,当文件的引用对象被重新分配给另外一个文件。它是使用close()方法来关闭文件是一个很好的做法。

  语法:

  ?

1

fileObject.close();

  例子:

  ?

1
2
3
4
5
6
7
8

#!/usr/bin/python
 
# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
 
# Close opend file
fo.close()

  这将产生以下结果:

  ?

1

Name of the file: foo.txt

  读取和写入文件:

  file对象提供了一组访问方法。我们来看看如何使用read()和write()方法来读取和写入文件。

  write() 方法:

  write()方法写入字符串到任何一个打开的文件。要注意的是Python字符串可以具有二进制数据,而不仅仅是文字。

  write()方法不要将换行字符('n')添加到字符串的结尾:

  语法:

  ?

1

fileObject.write(string);

  这里,传递的参数是要写入到打开的文件的内容。

  例子

  ?

1
2
3
4
5
6
7
8

#!/usr/bin/python
 
# Open a file
fo = open("foo.txt", "wb")
fo.write( "Python is a great language.nYeah its great!!n");
 
# Close opend file
fo.close()

  上面的方法会创建 foo.txt 文件,并会将给定的内容写在该文件中,并最终将关闭该文件。

  ?

1
2

Python is a great language.
Yeah its great!!

  read() 方法:

  read()方法读取一个打开的文件的字符串。要注意的是Python字符串可以具有二进制数据,而不仅仅是文本。

  语法

  ?

1

fileObject.read([count]);

  这里,传递的参数是从打开的文件中读出的字节数。此方法从该文件的开头读取,如果计数丢失,那么它会尝试尽可能多地读取,直到文件的末尾。

  例子:

  这里以一个文件foo.txt作为例子,这是在上面创建的。

  ?

1
2
3
4
5
6
7
8

#!/usr/bin/python
 
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
# Close opend file
fo.close()

  这将产生以下结果:

  ?

1

Read String is : Python is

  文件位置:

  tell()方法告诉该文件中的当前位置;换句话说,下一个读取或写入将发生在从该文件的开头的字节数。

  seek(offset[, from]) 方法会更改当前的文件位置。偏移参数指示要移动的字节数。从该参数指定字节将被移至参考点。

  如果from被设置为0,这意味着使用该文件的开始处作为基准位置,设置为1则是使用当前位置作为基准位置,如果它被设置为2,则该文件的末尾将被作为基准位置。

  例子

  让我们以一个文件foo.txt,这是上面创建。

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

#!/usr/bin/python
 
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
 
# Check current position
position = fo.tell();
print "Current file position : ", position
 
# Reposition pointer at the beginning once again
position = fo.seek(0, 0);
str = fo.read(10);
print "Again read String is : ", str
# Close opend file
fo.close()

  这将产生以下结果:

  ?

1
2
3

Read String is : Python is
Current file position : 10
Again read String is : Python is

  重命名和删除文件:

  Python的os模块提供了一些方法,可以帮助执行文件处理操作,如重命名和删除文件。

  要使用这个模块,需要先导入它,然后调用相关的功能。

  rename() 方法:

  rename()方法有两个参数,当前文件名和新文件名。

  语法:

  ?

1

os.rename(current_file_name, new_file_name)

  例子

  以下是例子来重命名文件test1.txt:

  ?

1
2
3
4
5

#!/usr/bin/python
import os
 
# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )

  remove() 方法:

  可以使用remove()方法通过提供参数作为文件名称作为要删除的文件。

  语法:

  ?

1

os.remove(file_name)

  例子

  以下为示例删除现有文件test2.txt:

  ?

1
2
3
4
5

#!/usr/bin/python
import os
 
# Delete file test2.txt
os.remove("text2.txt")

  Python中的目录:

  所有的文件都包含不同的目录中,而在Python中处理这些没有问题。os模块有几种方法,可以帮助创建,删除和更改目录。

  mkdir() 方法:

  可以使用os模块的mkdir()方法在当前目录下创建目录。需要提供参数,这个方法包含的目录要创建的名称。

  语法:

  ?

1

os.mkdir("newdir")

  例子:

  以下为示例在当前目录下创建test目录如下所示:

  ?

1
2
3
4
5

#!/usr/bin/python
import os
 
# Create a directory "test"
os.mkdir("test")

  chdir() 方法:

  可以使用chdir()方法来改变当前目录。chdir()方法接受一个参数,那就是要成为当前目录的目录的名称。

  语法:

  ?

1

os.chdir("newdir")

  例子:

  下面是一个进入“/home/newdir”目录的例子:

  ?

1
2
3
4
5

#!/usr/bin/python
import os
 
# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

  getcwd() 方法:

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

  例子:

  ?

1

os.getcwd()

  例子:

  以下是例子给定为当前目录:

  ?

1
2
3
4
5

#!/usr/bin/python
import os
 
# This would give location of the current directory
os.getcwd()

  rmdir() 方法:

  rmdir()命令方法删除目录,它是通过方法的参数。

  在删除一个目录,它的所有内容应该被删除。

  语法:

  ?

1

os.rmdir('dirname')

  例子

  下面是一个例子删除“/tmp/test”目录。它是必需的,得到的目录完全的名称,否则将搜索在当前目录中的目录。

  ?

1
2
3
4
5

#!/usr/bin/python
import os
 
# This would remove "/tmp/test" directory.
os.rmdir( "/tmp/test" )

时间: 2024-12-12 05:45:00

详细讲解Python中的文件I/O操作的相关文章

Python中的文件和目录操作实现代码_python

本文将详细解释这些函数的使用方法.首先,我们介绍Python语言中类似于Windows系统的dir命令的列出文件功能,然后描述如何测试一个文件名对应的是一个标准文件.目录还是链接,以及提取文件大小和日期的方法.之后,我们还将介绍如何删除文件和目录,如何复制和删除文件,以及怎样将一个完整的文件路径分解成目录部分和文件名部分,最后,我们讲解目录的创建,以及如何在目录树中移动目录并处理文件. 一.显示目录内容 当我们想要列出当前目录中所有扩展名为.jpg或.gif的文件的时候,就可以使用glob模块来

讲解Python中面向对象编程的相关知识

  这篇文章主要介绍了深入讲解Python中面向对象编程的相关知识,是Python入门学习中的基础知识,需要的朋友可以参考下 Python从第一天开始就是面向对象的语言.正因为如此,创建和使用类和对象是非常地容易.本章将帮助您在使用Python面向对象编程的技术方面所有提高. 如果没有任何以往面向对象(OO)的编程的经验,那么可能要了解一些基本的入门课程就可以了,或者至少某种形式的教程,让你有了解基本概念. 但是,这里会比较少地介绍面向对象编程(OOP): OOP术语概述 类: 用户定义的原型对

讲解Python中fileno()方法的使用

  这篇文章主要介绍了讲解Python中fileno()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下 fileno()方法返回所使用的底层实现,要求从操作系统I/O操作的整数文件描述符. 语法 以下是fileno()方法的语法: ? 1 fileObject.fileno(); 参数 NA 返回值 此方法返回整数文件描述符. 例子 下面的例子显示fileno()方法的使用. ? 1 2 3 4 5 6 7 8 9 10 11 #!/usr/bin/python   # Ope

初步讲解Python中的元组概念

  这篇文章主要介绍了初步讲解Python中的元组概念,是Python入门中的基础知识,需要的朋友可以参考下 元组是不可变的Python对象序列.元组的序列就像列表.唯一的区别是,元组不能被改变,即元组是不可被修改.元组使用小括号,而列表使用方括号. 创建一个元组很简单,只要把不同的逗号分隔值,可以把括号中的这些逗号来分隔每个值.例如: ? 1 2 3 tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tu

讲解Python中if语句的嵌套用法

  这篇文章主要介绍了讲解Python中if语句的嵌套用法,是Python入门当中的基础知识,需要的朋友可以参考下 可能有这样一种情况,当你想检查其他条件后一个条件解析为真.在这种情况下,可以使用嵌套的if结构. 在嵌套的 if 语句结构,可以在一个 if... elif... else 结构里面可有另外一个 if... elif... else 结构. 语法: 嵌套 if...elif...else 结构的语法可以是: ? 1 2 3 4 5 6 7 8 9 10 11 12 if expre

详细解析Python中

  这篇文章主要介绍了详细解析Python中__init__()方法的高级应用,包括在映射和elif序列等地方的更为复杂的用法,需要的朋友可以参考下 通过工厂函数对 __init__() 加以利用 我们可以通过工厂函数来构建一副完整的扑克牌.这会比枚举所有52张扑克牌要好得多,在Python中,我们有如下两种常见的工厂方法: 定义一个函数,该函数会创建所需类的对象. 定义一个类,该类有创建对象的方法.这是一个完整的工厂设计模式,正如设计模式书所描述的那样.在诸如Java这样的语言中,工厂类层次结

python中对文件、文件夹的操作

python中对文件.文件夹的操作需要涉及到os模块和shutil模块. 创建文件: 1) os.mknod("test.txt")       创建空文件 2) open("test.txt",w)           直接打开一个文件,如果文件不存在则创建文件 创建目录: os.mkdir("file")                   创建目录 复制文件: shutil.copyfile("oldfile",&quo

PHP中文件读、写、删的操作(PHP中对文件和目录操作)_php实例

一:目录操作 首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出: 复制代码 代码如下: <?php $base_dir = "filelist/"; $fso = opendir($base_dir); echo $base_dir."<hr/>" ; while($flist=readdir($fso)){ echo $flist."<br/&

Java 中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 作者:Jeru Liu日期:November 29,2000版本:1.0 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的.InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputSt