open函数打开文件

① 格式:

# 第一种,手动关闭文件
f = open(r'test_file.txt',mode = 'w', encoding = utf8)
f.write("hello world")
f.close()

# 第二种,推荐使用
 with open(r'test_file.txt',mode = 'w', encoding = utf8) as f:
     print(f.read())

TODO:打开文件操作后,要记得关闭文件,如果不想手动close,推荐用with open 。

② 参数解析,open(file,mode,encoding)

  • file参数
  • 打开的文件和代码文件在同一目录下,可直接传入文件名称
  • 打开的文件和代码文件不再同一目录下,需要用绝对路径打开(反斜杠\前面记得加防转义r)
  • mode参数,默认mode=‘r’

模式

解析

r

read,只读模式,文件指针默认放在文件开头

w

write,写入模式,覆盖历史数据,相当于重写

a

add,追加模式,文件存在指针放在文件结尾;无则新增

rb

以二进制格式打开用于只读,文件指针放在文件开头

ab

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

  • encoding参数,关键字参数
  • 编码格式:utf-8 进行编码。 ascii, 美国标准编码格式
  • 国际通用的格式
  • 和打开的文件编码格式一致,一般用utf8
  • 中文转为二进制

import导入

格式

import 模块名 # 一般导入python内置的库
from 路径 import 模块名(函数,类,变量)as xxx # as xxx 可省略,一般用于导入自己写的模块、第三方模块

os路径处理

import os
# 打印当前文件的绝对路径
print(os.path.abspath(__file__)
# 打印当前文件的绝对路径
print(os.path.realpath(__file__)
# 打印当前脚本文件所在目录的绝对路径
print(os.getcwd())
# 打印当前脚本文件调用模块的所在目录的绝对路径
print(os.path.dirname(__file__) 
# dirname不考虑路径是否存在,只是处理传入的字符串
>>> os.path.dirname(r'E:a\b\c\d\111\你好吗.txt')
'E:a\\b\\c\\d\\111'
# 打印当前脚本文件调用模块的所在目录的绝对路径
print(os.path.dirname(os.path.realpath(__file__))
  • 下面解释一下os.path.dirname(os.path.realpath(file)) 和
    os.getcwd()的区别
  • python3打开文件路径 python打开指定路径文件_文件指针

    python3打开文件路径 python打开指定路径文件_绝对路径_02

  • 暂时没get到os.path.abspath()和os.path.realpath()有什么区别,待补充
  • 其他一些常用方法
>>> os.chdir(r'E:\Python38\test') # 切换工作路径
>>> os.mkdir("创建新目录") # 创建新目录
>>> os.mkdir("创建新目录2")
>>> os.listdir() # 获取当前路径下的目录列表
['创建新目录', '创建新目录2']
>>> os.rmdir("创建新目录") # 删除目录
>>> os.listdir()
['创建新目录2']
  • 项目中常见用法
# 获取项目下的任意文件的绝对路径
import os

base_dir = os.path.dirname(os.getcwd())  # 获取当前项目根目录的绝对路径。如果当前脚本文件有几层目录结构,多次调用os.path.dirname即可
dir_1_2 = os.path.join(base_dir,'package1\dir_1_2.py') # 通过os.path.join拼接根目录和目标文件获取任意文件的绝对路径,两种写法
dir_2_1 = os.path.join(base_dir + 'package2','dir_1_2.py')

项目目录结构如下图:

python3打开文件路径 python打开指定路径文件_文件指针_03