簡體   English   中英

Python:編寫帶有很多變量的文本文件

[英]Python: writing a text file with a lot of variables

我需要創建一個文本文件(從Python代碼開始),每行包含約50個變量,以逗號分隔。 我采用規范的方式進行output.write(“ {},{},{},{},{},{},{},{},{},{},... \\ n” .format (v,v,v,v,...但是使用如此多的變量將很難理解和維護。還有其他建議嗎?我考慮過使用csv模塊,畢竟我正在寫的是(有點)csv文件,但以為我會首先聽到其他建議。

使用清單

當到達幾個相互關聯的變量時,通常使用listdict 如果創建列表:

myrow = []
myrow.append(v1)
...

這也使得更容易遍歷每個值。 完成后,您可以輕松地將其連接為字符串:

f.write(','.join(myrow))

萬一您的行可能包含任何逗號(或用作分隔符的任何內容),則必須確保轉義。 在這種情況下,CSV模塊有助於:

import csv
with open('myfile.csv', 'w') as f:
  fw = csv.writer(f)
  fw.writerow(myrow)   # where myrow is a list

使用字典

有些人喜歡添加其他結構,例如:

myrow = {}
myrow['speed'] = speed_value
myrow['some_other_row'] = other_value

import csv
with open('myfile.csv', 'w') as f:
  fw = csv.writer(f)
  fw.writerow(myrow)

如果可以對變量進行排序,則可以使用locals()。

例如:

我設置了三個變量:

var1 = 'xx'
var2 = 'yy'
var3 = 'zz'

我可以通過sorted()對它們進行排序。

def sort(x):
    if len(x) != 4:
        return '99'
    else:
        return x[-1]

sortVars = sorted(locals(), key=sort)

然后,使用for組合它們。

result = ''

for i in sortVars[:3]:
    result += locals()[i]

print(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM