按行读取TXT文件
fname = './新建文件夹/yob2010.txt' //文件夹路径
with open(fname,'r+',encoding='utf-8') as f:
for line in f.readlines(): //按行读取每行
print(line[:-1].split(',')) //切片去掉换行符,再以‘,'分割字符串 ,得到一个列表
s = [i[:-1].split(',') for i in f.readlines()] //列表生成器,将文件每行数据按上述方法处理后放入列表
# print(s)
Python split()方法
在Python编程中,读取和处理文本文件是常见的任务,特别是在数据分析和日志处理等领域。本文将详细讨论如何使用Python来读取TXT文件,并按特定字符(如逗号)分割每行数据。我们将重点关注以下几个方面:
1. **打开和读取TXT文件**:
Python的`open()`函数用于打开文件,`'r+'`模式表示读写模式,但在这个场景中,我们只需要读取文件,所以可以使用`'r'`模式。`'utf-8'`参数指定文件的编码方式,确保正确处理非ASCII字符。例如:
```python
with open('./新建文件夹/yob2010.txt', 'r', encoding='utf-8') as f:
# 文件操作
```
使用`with`语句可以确保文件在使用完毕后被正确关闭,即使在处理过程中出现异常。
2. **按行读取文件内容**:
`f.readlines()`方法返回一个包含文件所有行的列表,每一项都是一个字符串。我们可以通过遍历这个列表来逐行处理数据。例如:
```python
for line in f.readlines():
# 处理每一行数据
```
3. **按字符分割字符串**:
`str.split()`方法用于根据指定的分隔符将字符串分割成多个子字符串,返回一个列表。默认情况下,它会根据所有空白字符(如空格、换行符)进行分割。在这个例子中,我们使用逗号(',')作为分隔符。注意,`line[:-1]`是为了去除末尾的换行符,因为`readlines()`返回的每行字符串末尾都有一个换行符`\n`。例如:
```python
print(line[:-1].split(','))
```
4. **列表生成器**:
列表生成器是一种简洁的创建列表的方式,它可以在一行代码中完成循环操作。在给定的示例中,我们使用列表生成器将文件的每一行都按逗号分割并存储到一个列表中:
```python
s = [i[:-1].split(',') for i in f.readlines()]
```
5. **split()方法详解**:
`str.split(str=None, num=-1)`方法允许你指定分隔符和最大分割次数。如果不提供分隔符,它会使用所有空字符作为分隔符。`num`参数指定了最多可以分割的次数,-1表示不限制次数。例如:
```python
s = '123456#0#da#0'
print(s.split('#', 2))
# 输出: ['123456', '0', 'da#0']
```
6. **路径写法**:
在Python中,路径可以使用绝对路径或相对路径。绝对路径从根目录开始,如`'/path/to/file.txt'`,在Windows中,也可以表示为驱动器和目录,如`'E:\path\to\file.txt'`。相对路径`'./'`表示当前目录,`'..'`表示上一级目录。
7. **读取TXT文件的其他方法**:
除了按行读取外,还可以使用`for line in f:`的方式,这会自动处理文件的迭代,每次迭代返回一行。此外,如果要将文件内容一次性读入内存,可以使用`f.read()`方法。
8. **数据处理和存储**:
示例中的代码可以用于读取TXT文件中的数据,并将每行数据存储为列表,便于后续的数据分析和处理。如果需要将处理后的数据写回文件,可以使用`f.write()`方法。
Python提供了丰富的文件操作功能,可以方便地处理各种文本文件。在这个例子中,我们学习了如何按行读取TXT文件,按逗号分割每行数据,并使用列表生成器进行高效的数据处理。这些技能在处理结构化的文本数据时非常有用,尤其是在数据分析、日志处理和配置文件读取等场景。