在python中,如何逐字阅读,但将每个单词赋予一个值,以及如何在公用项之间赋予一组值
我知道标题不好,但很难总结。我有一个包含以下内容的文本文件:在python中,如何逐字阅读,但将每个单词赋予一个值,以及如何在公用项之间赋予一组值,python,Python,我知道标题不好,但很难总结。我有一个包含以下内容的文本文件: Jeffery, Ben, 5/5/2020, 2000 testinglast, testfirst, 17/5/2020, 240 我正在尝试编写软件,将其格式化如下: Last name : Jeffery First name: Ben date : 5/5/2020 Points: 2000 我已经能够自己打印出每个单词,没有任何共同点,但仅此而已,因为我需要通过检查器运行每个值。谢谢你的帮助 这是我最接近它的作品,但它
Jeffery, Ben, 5/5/2020, 2000
testinglast, testfirst, 17/5/2020, 240
我正在尝试编写软件,将其格式化如下:
Last name : Jeffery
First name: Ben
date : 5/5/2020
Points: 2000
我已经能够自己打印出每个单词,没有任何共同点,但仅此而已,因为我需要通过检查器运行每个值。谢谢你的帮助
这是我最接近它的作品,但它贯穿了整行,而不是每一个单词
def main():
emp_file = open('test.txt', 'r')
name = emp_file.readline()
while name != '':
id_num = emp_file.readline()
dept = emp_file.readline()
name = name.rstrip('\n')
id_num = id_num.rstrip('\n')
dept = dept.rstrip('\n')
print('name first :', name.replace(',',''))
print('name last :', id_num.replace(',',''))
print('date :', dept.replace(',',''))
print('rewards :', dept.replace(',',''))
print()
name= emp_file.readline()
emp_file.close()
main()
假设您有一个包含以下行的文件
tmp.txt
:
Jeffery, Ben, 5/5/2020, 2000
testinglast, testfirst, 17/5/2020, 240
这将为您提供一些入门帮助:
with open('tmp.txt','r') as f:
for line in f:
last_name, first_name, date, points = line.split(',')
print(f'Last name: {last_name}\n'
f'First name: {first_name}\n'
f'Date: {date}\n'
f'Points: {points}\n')
输出
解释
这个小片段执行以下操作
- 以读取权限打开文件(
)以打开(…,'r')
- 逐行读取文件(
)用于f中的行
- 在逗号处拆分行(
,并将结果列表添加到变量(行。拆分(',')
)姓氏、姓氏、日期、点数)
- 使用
f字符串格式化打印变量
tmp.txt
:
Jeffery, Ben, 5/5/2020, 2000
testinglast, testfirst, 17/5/2020, 240
这将为您提供一些入门帮助:
with open('tmp.txt','r') as f:
for line in f:
last_name, first_name, date, points = line.split(',')
print(f'Last name: {last_name}\n'
f'First name: {first_name}\n'
f'Date: {date}\n'
f'Points: {points}\n')
输出
解释
这个小片段执行以下操作
- 以读取权限打开文件(
)以打开(…,'r')
- 逐行读取文件(
)用于f中的行
- 在逗号处拆分行(
,并将结果列表添加到变量(行。拆分(',')
)姓氏、姓氏、日期、点数)
- 使用
f字符串格式化打印变量
import csv
# Name of each field
fieldnames = ['Last name', 'First name', 'date', 'Points']
with open('data.csv', newline='') as csvfile:
# Get csv reader as described in link above
reader = csv.DictReader(csvfile, fieldnames = fieldnames)
for row in reader:
# row will be a dictionary of name/value pairs.
# name will be field name, value will be value for row
for name in fieldnames:
# show each field on a separate line
print(f'{name} : {row[name]}')
输入
Last name : Jeffery
First name : Ben
date : 5/5/2020
Points : 2000
Last name : testinglast
First name : testfirst
date : 17/5/2020
Points : 240
文件data.csv
Jeffery, Ben, 5/5/2020, 2000
testinglast, testfirst, 17/5/2020, 240
输出
Last name : Jeffery
First name : Ben
date : 5/5/2020
Points : 2000
Last name : testinglast
First name : testfirst
date : 17/5/2020
Points : 240
使用
代码
import csv
# Name of each field
fieldnames = ['Last name', 'First name', 'date', 'Points']
with open('data.csv', newline='') as csvfile:
# Get csv reader as described in link above
reader = csv.DictReader(csvfile, fieldnames = fieldnames)
for row in reader:
# row will be a dictionary of name/value pairs.
# name will be field name, value will be value for row
for name in fieldnames:
# show each field on a separate line
print(f'{name} : {row[name]}')
输入
Last name : Jeffery
First name : Ben
date : 5/5/2020
Points : 2000
Last name : testinglast
First name : testfirst
date : 17/5/2020
Points : 240
文件data.csv
Jeffery, Ben, 5/5/2020, 2000
testinglast, testfirst, 17/5/2020, 240
输出
Last name : Jeffery
First name : Ben
date : 5/5/2020
Points : 2000
Last name : testinglast
First name : testfirst
date : 17/5/2020
Points : 240
逐行迭代此文件,然后在
,
上拆分并分配值?你能添加一些代码吗?你尝试了什么?看看CSV模块:。特别是DictReader
可能有用。逐行迭代此文件,然后在,
上拆分并分配值吗?你能添加一些代码吗?你做了什么ied?看看CSV模块:。特别是DictReader
可能很有用。非常感谢您的解释,我想我主要错过了(line.split(,)函数,非常感谢!非常感谢您的解释,我想我主要错过了(line.split(,)函数,非常感谢!