我想在Python 3.0中編寫代碼來逐行重新格式化數據文件。代碼讀取每行,將行轉換爲列表,然後讀取列表中的每個元素。然後修改每個列表元素並將其複製到輸出文件。有什麼辦法從Python列表中提取和打印一個原始/文字字符串
問題是,一些元素包含反斜槓字符,Python將解釋爲命令或無法解釋忽略。 Python中是否有任何方式來讀取和/或提取列表中的元素作爲原始字符串或文本字符串?
我的代碼是下面:
import shlex
import sys
import fileinput
import string
inputFile = list(open("inputfile.txt","r"))
outputFile = open("outputFile.txt","a")
for i in range(1,len(inputFile)):
print(inputFile[i])
line = shlex.shlex(inputFile[i], posix = True)
line.whitespace = "\t"
line.whitespace_split = True
line = list(line)
for j in range(0,3):
cell = line[j]
cell_1 = cell.replace("\\","\\\\")
outputFile .write(("%s\t")%(cell_1))
for k in range(4,len(line)):
cell = str(line[k])
cell_1 = cell.replace(" | ","\t")
if cell_1 == "-":
outputFile .write("-\t-\t")
if cell_1 == "unknown":
outputFile .write("unknown\t-\t")
else:
outputFile .write(("%s\t")%(cell_1))
輸入的一個例子是: GA10034 7421353 7424287 FBgn0070093 DPSE \ GA10034蛋白水解|用InterPro從電子註釋推斷:IPR007484 - - - - 未知 - - - 肽酶活性|從電子註釋推斷用的InterPro:IPR007484 - - - - - -
和示例輸出線是: GA10034 7421353 7424287 DpseGA10034蛋白水解從電子註釋推斷用的InterPro:IPR007484 - - - - - - - - - - - - 未知 - - - - - - - - - - 使用InterPro從電子註釋推斷的肽酶活性:IPR007484 - - - - - - - - - -
輸出中刪除了\ \和GA10034 \之間的\。 (該腳本還在輸出中的每行新行的開始處添加了一個製表符 - 從第二行開始);並且無法解釋通過輸入文件的3/4的方式失敗,聲稱存在「沒有收盤價」;但我認爲最好一次解決一個問題)
你可以添加一個輸入和所需輸出的例子嗎? –
那麼...你的實際問題是什麼?預期產出是多少,與實際產出相比如何?如果您真正向我們展示您遇到的問題,您會獲得更多的關注。老實說,它看起來像你可能只是在推翻它。 –