0

テキスト ファイルのエントリを作成、比較、およびロードするコードを書き始めました。プログラムは、あなたの名前、年齢、身長を尋ねています。次に、次のようなテキスト ファイルが作成されます。

ヴィンセント、18,190

私はこれを機能させましたが、閉じた後にこの情報を Python にロードする方法がわかりません。呼び出したいのですがload、すべてのテキスト ファイル エントリが読み込まれ、次のように表示されます。

名前:"名前"
年齢:"年齢"
身長:"身長"

私はこれを行うことができますか?

4

6 に答える 6

4

このように、以前に保存したテキストファイルを開くことができます

with open('myData.txt') as infp:
   for line in infp:
      # process line
      line = line.rstrip()

(これにより、ファイルも閉じられます)

たとえば、ファイルに 1 行に 3 つの項目が格納されている場合、次のように記述できます。

      name, age, height = line.split(',')

変数に値を取得します (最初に保存されたときにデータがスペースなしでコンマで区切られていると仮定します)。次に、指定した形式で出力を生成します。

      print 'Name:"%s"' %name
      print 'Age:"%s"' %age
      print 'Height:"%s"' %height

@pepr が指摘したように、データの保存方法 (単語とコンマの間のスペース) によっては、生成されたデータに先頭/末尾の空白が含まれる場合があります。その場合、余分な空白を取り除くsplit(',')ために使用する必要があります。strip(). 示されているデータ サンプルでは、​​これは当てはまらず、上記のコードは機能するはずです。

これを行うために、すべてを関数にラップします。

def load(datafile):

   with open(datafile) as infp:
      for line in infp:
         line = line.rstrip()
         name, age, height = line.split(',')
         print 'Name:"%s"' %name
         print 'Age:"%s"' %age
         print 'Height:"%s"' %height

データが「myData.txt」という名前のファイルに保存されている場合、上記のload関数を次のように呼び出します

load('myData.txt')
于 2012-04-30T10:12:28.203 に答える
2
data = open('file.txt').read().splitlines()
for line in data:
    person = line.split(',')
    print 'Name:', person[0]
    print 'Age:', person[1]
    print 'Height:', person[2]
于 2012-04-30T10:12:28.963 に答える
1
fil=open('file.txt','r')

for line in fil:                  # iterate through the file.txt line by line

  name,age,height=line.rstrip().split(',')     #now after this name='Vincent' and age='18' , height='190'

  print(name,age,height)

出力:

vincent 18 190
于 2012-04-30T10:29:11.140 に答える
0

別のアプローチは、標準のcsvモジュールを使用して、ファイル行をのような行に読み込むことです['Vincent', '18', '190']

数値を整数(つまり、文字列ではない)にする場合は、文字列をで明示的に変換する必要がありますint(str_variable)

于 2012-04-30T10:31:12.653 に答える
0

ファイルを保存したら、これを使用して読み取ります。

import csv

filename = 'myfile.txt'

# the code that creates
# the file goes here

the_file = csv.reader(open(filename, 'rb'))
for line in the_file:
   # line[0] is Name
   # line[1] is Age
   # line[2] is Height
于 2012-04-30T10:39:33.540 に答える
0

これは私のために働く

f = open('temp.txt', 'r')
for line in f.readlines():
     a,b,c = line.split(',')
     print "Name:%s\nAge:%s\nHeight:%s\n" % (a,b,c)
f.close()

出力

Name:Vincent
Age:18
Size:190
于 2013-01-25T03:47:11.257 に答える