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']