python 文件操作

在这里插入图片描述在这里插入图片描述在这里插入图片描述

1.跳过读取文件的首尾

from itertools import islice

def read_file():
    content=[]
    # 跳过前面没用的3行数据
    with open('G://国际数据主要国家(地区)年度数据.csv', 'r') as f:
        # 跳过后面两行没用的数据
        lines=len(f.readlines())-2
        # 将文件指针指到开始位置
        f.seek(0)
        for line in islice(f, 3, lines):
            content.append(line.split('\n')[0].split(','))
        f.close()
    return content

2.通过readlines()读取多行文件,但是在每行末尾会多个‘\n’

  • 解决办法:
    • 用 fs.read().splitlines() 替换 fs.readlines()

3 .在文件里面写入json数据格式,解决乱码问题

content = {'姓名': '李四', '学号': '10086', '班级': '大数据二班'}
with open(filepath, 'a+', encoding='utf8') as fp: 
    fp.write(json.dumps(content, ensure_ascii=False))
    fp.close()
//encoding='utf8'设置编码格式
//ensure_ascii=False解码

import shelve
zhangsan = {'age':38, 'sex':'Male', 'address':'SDIBT'}
lisi = {'age':40, 'sex':'Male', 'qq':'1234567', 'tel':'7654321'}
with shelve.open('shelve_test.dat') as fp:
	fp['zhangsan'] = zhangsan             #以字典形式把数据写入文件
	fp['lisi'] = lisi
	for i in range(5):
		fp[str(i)] = str(i)



with shelve.open('shelve_test.dat') as fp:
	print(fp['zhangsan'])                 #读取并显示文件内容
	print(fp['zhangsan']['age'])
	print(fp['lisi']['qq'])
	print(fp['3'])
	

{'sex': 'Male', 'address': 'SDIBT', 'age': 38}
38
1234567
3


4.以excel的格式写入文件

with open(filename,'a',newline='') as f:
  csvwriter = csv.writer(f,dialect='excel')
  csvwriter.writerow(['id','name','age'])
  f.close()


在这里插入图片描述在这里插入图片描述
在这里插入图片描述1. 用os对文件基本操作

import os

fileList = [fname for fname in os.listdir(os.getcwd()) if os.path.isfile(fname) and fname.endswith('.py')]
print(fileList)

在这里插入图片描述

import os

file_list = os.listdir(".")
for filename in file_list:
    # rindex(".")定点索引位置
    pos = filename.rindex(".")
    # filename[pos + 1:]切片语法 返回的是pos + 1后面的字符
    if filename[pos + 1:] == "html":
        newname = filename[:pos + 1] + "htm"
        os.rename(filename, newname)
        print(filename + "更名为:" + newname)

在这里插入图片描述
在这里插入图片描述

import os

def visitDir2(path):
    if not os.path.isdir(path):
        print('Error:"',path,'" is not a directory or does not exist.')
        return
    list_dirs = os.walk(path)                #os.walk返回一个元组,包括3个元素:
                                                           #所有路径名、所有目录列表与文件列表
    for root, dirs, files in list_dirs:       #遍历该元组的目录和文件信息
        for d in dirs:
            print(os.path.join(root, d))     #获取完整路径
        for f in files:
            print(os.path.join(root, f))     #获取文件绝对路径

visitDir2(os.getcwd())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值