1. 程式人生 > >幫別人處理資料

幫別人處理資料

mport csv
import fileinput
#輸入需要列印的字串索引
inputs_keys=[]
##################

results=[]
dicts={}
filename_csv=r'C:Users\zy\Desktop\TADPOLE_D1_D2_Dict.csv'
file_list=r'C:Users\zy\Desktop\file_list.txt'

with open(file_list) as f:
    content=f.readlines()

for i in content:
    line=i.split(',')[0]
    inputs_keys.append(line)
print(len(inputs_keys))

with open(filename_csv,encoding='utf-8') as f:
    reader_1=csv.reader(f)
    rows_keys=[row[1] for row in reader_1]

with open(filename_csv,encoding='utf-8') as f:
    reader_2=csv.reader(f)
    rows_values=[row[5] for row in reader_2]

for i in range(len(rows_keys)):
    dicts[rows_keys[i]]=rows_values[i]

for key in inputs_keys:
    results.append(dicts[key])

#列印結果
print(results,len(results))

千萬記住,用python讀取.txt檔案,一定要用文字閱讀器,去改變.txt裡面的內容,不能用wps去改變,兩者格式是不相容的實際上在wps裡面是一行一行的,但是在文字閱讀器裡面,它是亂七八糟的,所以用;

with open(filename) as f:
  content=f.readlines()

開啟的時候,就會出現不一樣的結果。

 

 

程式碼的改進版,程式碼結構更加清晰,程式碼的答應結果,更加明瞭。

import csv
#=======================#
'''tasks:
           1).讀取.txt檔案中的資料,並形成一個有效檔名索引的列表;
用到了f.readelines這個函式,這個函式按行讀取.txt的內容,而且每一
行作為一個元素,構成一個新的列表,要注意的是,每個元素的末尾會
多一個額外的’\n‘ 換行符,所以要用迴圈的方法,取出換行符前面的有效
索引所(filename.split(','))         
           
           2).按行讀取csv檔案,用到列表迴圈的方法:[row[index] for row in reader]
           3).構成一個字典,給字典新增新元素和給列表新增新元素有很大的區別,
dicts['filename'] = 'str or num'如果字典沒有這個鍵值對,就會自動新增,不像列
表,用.qppend(filename)新增。
'''
#=======================#
inputs_keys=[ ]
results=[ ]
dicts={ }

filename_csv=r'C:Users\zy\Desktop\TADPOLE_D1_D2_Dict.csv'
file_list=r'C:\Users\zy\Desktop\file_list.txt'

with open(file_list) as f:
    contents=f.readlines()
    for filename in contents:
        filename=filename.split(',')[0]
        inputs_keys.append(filename)
#    for filename in inputs_keys:
  #      print(filename)
with open(filename_csv) as f:
    reader=csv.reader(f)
    column_1=[row[1] for row in reader]
with open(filename_csv) as f:
    reader=csv.reader(f)
    column_5=[row[5] for row in reader]
#make a dicts
for index in range(len(column_1)):
    dicts[column_1[index]]=column_5[index]

for key in inputs_keys:
    print(key+' ==>',dicts[key])