前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3文件操作

Python3文件操作

作者头像
py3study
发布2020-01-09 16:54:52
6560
发布2020-01-09 16:54:52
举报
文章被收录于专栏:python3python3

打印到屏幕

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

代码语言:javascript
复制
#!/usr/bin/python3

print ("Python is really a great language,", "isn't it?")

这将产生以下结果标准屏幕上 -

代码语言:javascript
复制
Python is really a great language, isn't it?

读取键盘输入

Python2中有两个内置的函数可从标准输入读取数据,它默认来自键盘。这些函数分别是:input() 和 raw_input()。

但在Python3中,raw_input()函数已被弃用。此外, input() 函数是从键盘作为字符串读取数据,不论是否使用引号(''或“”)与否。

input 函数

input([prompt]) 函数等同 raw_input,不同之处在于它假定输入是一个有效的Python表达式并计算结果返回给你。

代码语言:javascript
复制
#!/usr/bin/python3

>>> x=input("something:")
something:10
>>> x
'10'
>>> x=input("something:")
something:'10' #entered data treated as string with or without ''
>>> x
"'10'"

打开和关闭文件

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

Python提供了基本的功能和必要的默认操作文件的方法。您可以使用一个 file 对象来做大部分的文件操作。

open 函数

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

语法

代码语言:javascript
复制
file object = open(file_name [, access_mode][, buffering])

下面是参数的详细信息:

  • file_name: 文件名(file_name )参数是包含您要访问的文件名的字符串值。
  • access_mode: access_mode指定该文件已被打开,即读,写,追加等方式。可能值的完整列表,在表中如下。 这是可选的参数,默认文件访问模式是读(r)。
  • buffering: 如果该缓冲值被设置为0,则表示不使用缓冲。如果该缓冲值是1,则在访问一个文件进行时行缓冲。 如果指定缓冲值大于1的整数,缓冲使用所指示的缓冲器大小进行。如果是负数,缓冲区大小是系统默认的(默认行为)。

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

模式

描述

r

打开一个文件为只读。文件指针被放置在文件的开头。这是默认模式。

rb

打开一个文件只能以二进制格式读取。文件指针被放置在文件的开头。这是默认模式。

r+

打开用于读和写文件。文件指针置于该文件的开头。

rb+

打开用于读取和写入二进制格式的文件。文件指针置于该文件的开头。

w

打开一个文件只写。如果文件存在覆盖该文件。如果该文件不存在,则创建写入新文件。

wb

打开一个文件只能以二进制格式写入。如果文件存在覆盖该文件。如果该文件不存在,则创建写入新文件。

w+

打开文件为写入和读取模式。如果文件存在覆盖现有文件。如果该文件不存在,创建用于读写操作的新文件。

wb+

打开用于以二进制格式写入和读出文件。如果文件存在覆盖现有文件。如果该文件不存在,创建用于读写操作的新文件。

a

打开用于追加的文件。文件指针是在文件是否存在该文件的末尾。也就是说,该文件是在追加模式。如果该文件不存在,它会创建一个用于写入的新文件。

ab

打开文件用于二进制格式追加。文件指针是在文件是否存在该文件的末尾。也就是说,文件是在追加模式。 如果该文件不存在,它会创建一个用于写入的新文件。

a+

打开文件为追加和读取方式。文件指针是在文件是否存在该文件的末尾。该文件以追加模式打开。如果该文件不存在,它将创建用于读写操作的新文件。

ab+

打开一个文件以附加和二进制格式读取模式。如果该文件存在文件指针在该文件的末尾。该文件以追加模式打开。如果该文件不存在,它将创建读写操作的新文件。

file 对象属性

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

这里是一个文件对象相关的所有属性的列表:

属性

描述

file.closed

如果文件被关闭返回true,否则为false

file.mode

返回文件打开访问模式

file.name

返回文件名

注:软空间属性未在Python3.x中支持

示例

代码语言:javascript
复制
#!/usr/bin/python3

# 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)
fo.close()

这将产生以下结果 -

代码语言:javascript
复制
Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb

close()方法

文件对象的close()方法用于刷新任何未写入的信息,并关闭文件对象, 之后就没有更多的写入东西了。

Python自动关闭文件当参考文件对象分配给另一个文件。使用 close()方法关闭文件一个很好的做法。

语法

代码语言:javascript
复制
fileObject.close();

示例

代码语言:javascript
复制
#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)

# Close opened file
fo.close()

这将产生以下结果 -

代码语言:javascript
复制
Name of the file:  foo.txt

读写文件

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

write() 方法

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

write()方法不添加换行符('\n')到字符串的结尾-

语法

代码语言:javascript
复制
fileObject.write(string);

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

示例

代码语言:javascript
复制
#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "w")
fo.write( "Python is a great language.\nYeah its great!!\n")

# Close opend file
fo.close() 

上面的方法将创建 foo.txt 文件,并给出的内容写入文件,最后将关闭该文件。如果打开这个文件,会看到它有以下内容。

代码语言:javascript
复制
Python is a great language.
Yeah its great!!

read() 方法

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

语法

代码语言:javascript
复制
fileObject.read([count]); 

这里,传递的参数是从打开的文件读取的字节数。该方法开始从文件的开始读取,并且如果 count 丢失,那么它会尝试尽可能读,也许直到文件的末尾。

示例

让我们使用一个文件 foo.txt,这是我们在上面所创建的。

代码语言:javascript
复制
#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)
# Close opened file
fo.close()

这将产生以下结果 -

代码语言:javascript
复制
Read String is :  Python is

文件位置

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

seek(offset[, from]) 方法改变当前文件的位置。 offset 参数指示要移动字节数。from 参数指定字节从哪移动的参考位置。

如果 from 被设置为0,这意味着使用该文件的开头作为基准位置,以及如果设置为1,则使用当前位置作为基准位置,如果它被设置为2,则该文件的结束将被作为基准位置。

示例

让我们使用一个文件foo.txt,这是我们在上面创建的。

代码语言:javascript
复制
#!/usr/bin/python3

# 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 opened file
fo.close()

这将产生以下结果 -

代码语言:javascript
复制
Read String is :  Python is
Current file position :  10
Again read String is :  Python is

重命名和删除文件

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

要使用这个模块,需要先导入它,然后就可以调用任何相关的功能了。

rename() 方法

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

语法

代码语言:javascript
复制
os.rename(current_file_name, new_file_name)

示例

以下为例子用来重命名现有文件 test1.txt 为 test2.txt:

代码语言:javascript
复制
#!/usr/bin/python3
import os

# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )

remove() 方法

可以使用 remove()方法通过提供参数文件名称(file_name)来删除文件。

语法

代码语言:javascript
复制
os.remove(file_name)

示例

下面是删除现有文件 test2.txt 的例子 -

代码语言:javascript
复制
#!/usr/bin/python3
import os

# Delete file test2.txt
os.remove("text2.txt")

Python目录

所有的文件都包含不同的目录中,Python处理这些目录操作也没有什么问题。os模块中有用于创建,删除和更改目录的几种方法。

mkdir() 方法

可以使用os模块中的 mkdir()方法在当前目录下创建目录。需要提供一个参数到这个方法指定要创建的目录名。

语法

代码语言:javascript
复制
os.mkdir("newdir")

示例

下面是在当前目录创建 test 目录的例子 -

代码语言:javascript
复制
#!/usr/bin/python3
import os

# Create a directory "test"
os.mkdir("test")

chdir() 方法

可以使用 chdir() 方法来改变当前目录。chdir() 方法接受一个参数,就是你想在当前目录创建的目录的目录名称。

语法

代码语言:javascript
复制
os.chdir("newdir")

示例

以下是进入 "/home/newdir" 目录的例子-

代码语言:javascript
复制
#!/usr/bin/python3
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

getcwd()方法

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

语法

代码语言:javascript
复制
os.getcwd()

示例

以下是获得当前目录的例子 -

代码语言:javascript
复制
#!/usr/bin/python3
import os

# This would give location of the current directory
os.getcwd()

rmdir() 方法

rmdir()方法删除目录,这是作为方法的参数传递。

删除目录前,它的所有内容应该先删除。

方法:

代码语言:javascript
复制
os.rmdir('dirname')

示例

以下是删除 "/tmp/test" 目录的例子。它需要给定目录的完全合格的名称,否则会从当前目录搜索目录。

代码语言:javascript
复制
#!/usr/bin/python3
import os

# This would  remove "/tmp/test"  directory.
os.rmdir( "/tmp/test"  )
代码语言:javascript
复制
转载于:http://www.yiibai.com/python3/python_files_io.html
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • input 函数
  • open 函数
    • 语法
    • file 对象属性
      • 示例
      • close()方法
        • 语法
          • 示例
          • write() 方法
            • 语法
              • 示例
              • read() 方法
                • 语法
                  • 示例
                    • 示例
                    • rename() 方法
                      • 语法
                        • 示例
                        • remove() 方法
                          • 语法
                            • 示例
                            • mkdir() 方法
                              • 语法
                                • 示例
                                • chdir() 方法
                                  • 语法
                                    • 示例
                                    • getcwd()方法
                                      • 语法
                                        • 示例
                                        • rmdir() 方法
                                          • 方法:
                                            • 示例
                                            领券
                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档