首页 AI Studio教育版 帖子详情
【百度领航团】【零基础Python】文件操作学习
收藏
快速回复
AI Studio教育版 文章课程答疑 1352 2
【百度领航团】【零基础Python】文件操作学习
收藏
快速回复
AI Studio教育版 文章课程答疑 1352 2

课程链接:https://aistudio.baidu.com/aistudio/course/introduce/7073

这几天的学习营收获颇丰,感谢AI Studio提供这样的机会。以后也会留在AI Studio继续研究学习。

常规文件操作:

从文件读取数据:

# 基础
f = open('work/train_data_cor.txt')
line = f.readline()
print(line)
line = f.readline()
print(line)
f.close()

# 进阶
f = open('work/train_data_cor.txt')
for line in f:
    print(line)
f.close()

读取数据遇到问题:

# 使用异常跳过有问题的数据
f = open('work/train_data_wrg.txt')
for line in f: 
    data = line.strip().split(',')
    try:
        print('姓名:'+data.pop(0)+'生日:'+data.pop(0)+'时间:'+str(data))
    except:
        pass
f.close()

# 增加代码判断
f = open('work/train_data_wrg.txt')
for line in f:
    data = line.strip().split(',')
    if len(data) != 1:
        print('姓名:'+data.pop(0)+'生日:'+data.pop(0)+'时间:'+str(data))
f.close()

写入数据到文件:

# 基础
f = open('work/data.txt','w')
f.write('this is file content')
f.close()

# 读、写文件都可以用with方法简化
with open('work/train_data.txt') as f:
    ...

JSON是使用最广的数据传输格式,转化数据为JSON格式:

# 对象转JSON
import json
class Athlete(json.JSONEncoder):
    def __init__(self,a_name,a_dob=None,a_times=[]):
        self.name = a_name
        self.dob = a_dob
        self.times = a_times
    ...

with open('work/train_data_cor.txt') as f:
    data = f.readline().strip().split(',')
    ath = Athlete(data.pop(0),data.pop(0),data)
    print(ath)

ath_json = json.dumps(ath.__dict__)

# 保存JSON
with open('work/json.txt','w') as f:
    json.dump(ath_json,f)

# 读取JSON
with open('work/json.txt') as f:
    ath = json.load(f)

使用os模块进阶文件操作:

import os
#返回当前工作目录
current_path = os.getcwd()
print('当前路径:'+current_path)

#改变当前工作目录
os.chdir('/home/aistudio/work')
#运行mkdir命令
os.system('mkdir today')

from pathlib import Path
#返回当前绝对路径
abs_path = os.path.abspath('')
print('abs_path:'+abs_path)
#路径是否存在
Path(abs_path).exists()

#是否为文件夹
os.path.isdir('/home/aistudio/work/today')

#返回当前路径下文件和文件夹名
print('当前路径:'+os.getcwd())
listdir = os.listdir()
print(listdir)

os模块在工作学习中被广泛使用,值得好好研究学习。

0
收藏
回复
全部评论(2)
时间顺序
AIStudio810258
#2 回复于2021-02

收获满满

0
回复
AIStudio810259
#3 回复于2021-02

满满的收获

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户