[英]Going to a specific position in a file
我是python的新手。 我一直在做一個我最近一直在努力的項目,如果能得到一些幫助,我將感到很高興。
我正在執行一個程序,其中將接收用戶的輸入,並查看輸入是否在文件中可見。 輸入的是名稱標簽,例如,用戶將必須輸入唯一的代碼(例如“ t56700”),然后程序將查看該代碼是否在文件中。 但是,代碼附帶其他信息。
我需要做的是接收用戶輸入,如果有效,我將需要跳轉到該輸入在文件上的位置,並打印代碼(名稱標簽)以及所有信息。
該文件如下所示:
名牌,x,x,x
名牌,x,x,x
名牌,x,x,x
^這幾行
到目前為止,這是我的代碼,我正在嘗試到達在文件上看到用戶輸入的位置,並打印信息。
file = open("filetest.txt","r").readlines()
nametag = input ("What is your name tag?")
if nametag in open('filetest.txt').read():
with open('filetest.txt', 'r') as searchfile:
for line in searchfile:
if nametag in line:
print ("nametag: " + nametag)
print ("xxxx ", line[2])
print("xxxx:",line[3])
print("xxxx:",line[1])
print("xxxx:",line[4])
break
例如,方括號內的數字(例如“ line [2]”)僅將我帶到文件的開頭,而不是我要從中讀取文件的位置。
首先,您不需要打開和讀取文件三遍-一次就足夠了。
數據顯示為CSV格式,因此您可以使用csv
模塊來幫助解析文件。
import csv
nametag = input("What is your name tag?")
with open('filetest.txt') as searchfile:
reader = csv.reader(searchfile)
for row in reader:
for row[0] == nametag:
print("nametag: {}".format(nametag))
print("xxxx: {}".format(row[2]))
print("xxxx: {}".format(row[3]))
print("xxxx: {}".format(row[1]))
break # if you want the first one only
假定該文件包含4列數據,如示例中所示。 請記住,列號從0開始。
如果您不想使用csv
模塊,則可以使用str.split()
獲得類似效果:
with open('filetest.txt') as searchfile:
for line in searchfile:
row = line.split(',')
for row[0] == nametag:
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.