Python中的文件

Python中文件与文件系统

file_reader.py

with open('pi_digits.txt') as file_object: 
 contents = file_object.read() 
 print(contents)

函数open()接受一个参数:要打开的文件的名称。Python在当前执行的文件所在的目录中查找指定的文件。在这个示例中,当前运行的是file_reader.py,因此Python在file_reader.py所在的目录中查找pi_digits.txt。函数open()返回一个表示文件的对象。在这里,open(‘pi_digits.txt’)返回一个表示文件pi_digits.txt的对象;Python将这个对象存储在我们将在后面使用的变量中。
✔✔✔✔✔✔✔✔✔✔✔✔✔
关键字with在不再需要访问文件后将其关闭。
👏👏👏👏👏👏👏👏
Python方法rstrip()删除(剥除)字符串末尾的空白。
😜😜😜😜😜😜😜😜
当你将类似pi_digits.txt这样的简单文件名传递给函数open()时,Python将在当前执行的文件(即.py程序文件)所在的目录中查找文件。
🐱‍🐉🐱‍🐉🐱‍🐉🐱‍🐉🐱‍🐉🐱‍🐉🐱‍🐉🐱‍🐉
Windows系统中,在文件路径中使用反斜杠(\)而不是斜杠(/):

with open('text_files\filename.txt') as file_object:

❤❤❤❤❤❤❤❤❤
读取文本文件时,Python将其中的所有文本都解读为字符串。如果你读取的是数字,并要将其作为数值使用,就必须使用函数int()将其转换为整数,或使用函数float()将其转换为浮点数。

👀👀👀👀👀👀👀
Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。

💖💖💖💖💖💖💖
异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。使用了try-except代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是令用户迷惑的traceback。

练习

1、打开中文字符的文档时,会出现乱码,Python自带的打开文件是否可以指定文字编码?还是只能用相关函数?

file1= open(r"./将进酒.txt",'r+', encoding='UTF-8')
print(file1)

2、编写程序查找最长的单词

"""

Input file
   test.txt

Output file
   ['general-purpose,', 'object-oriented,']

"""
import os, collections

path = r'./test.txt'


def longest_word(filename):
    # your code here
    f = open(filename, mode='r')
    wordlist = []
    maxlength = 0
    ret = []
    lines = f.readlines()
    # 对每行利用split空格分割单词,strip去除标点符号,获得一个wordlist
    for each in lines:
        line = each.strip().strip('\n')
        line = line.split(' ')
        for index, item in enumerate(line):
            item = item.strip('.').strip('?').strip('\'').strip(',').strip('(').strip(')')
            line[index] = item
        # print(line)
        wordlist.extend(line)
    # 在wordlist中找最长的单词
    for item in wordlist:
        if len(item) < maxlength:
            continue
        elif len(item) == maxlength:
            ret.append(item)
        else:
            maxlength = len(item)
            ret = []
            ret.append(item)
    return ret


print(longest_word(path))
 ['general-purpose', 'object-oriented']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值