[英]Open a csv file without separating the content automatically
我有一個csv
,其中包含類似
AAABBBBCCCDDDDDDD
EEEFFFRRRTTTHHHYY
當我運行如下代碼時:
rows = csv.reader(csvfile)
for row in rows:
print(" ".join('%s' %row for row in rows))
它將預測如下:
['AAABBBBCCCDDDDDDD']
['EEEFFFRRRTTTHHHYY']
但我想顯示為如下一系列單詞:
AAABBBBCCCDDDDDDDEEEFFFRRRTTTHHHYY
代碼有什么問題嗎?
您的示例看起來像您只需要
with open(csvfile) as inputfile: # misnomer; not really proper CSV
for row in inputfile:
print(row.rstrip('\n'), end='')
您提供的示例看起來像一個csv文件。 它看起來像一個簡單的文本文件。 您可能會像以下這樣簡單:
Input.txt
AAABBBBCCCDDDDDDD
EEEFFFRRRTTTHHHYY
解決方案
input_filename = "Input.txt"
with open(input_filename) as input_file:
print("".join(x.rstrip('\n') for x in input_file))
這利用了:
.rstrip()
方法將其刪除 .join()
方法甚至可以接受任何可迭代的... .rstrip()
來接受.join()
.rstrip()
來格式化來自輸入文件的每一行。 編輯:好的,讓我們進一步分解我的答案:
for line in input_file: ...
)。 (x.rstrip() for x in input_file)
將是一個迭代器,該迭代器接受input_file
每個元素並將其應用於.rstrip()
.join()
將使用該字符串作為分隔符的迭代器提供的元素粘合在一起。 由於我在此處使用空字符串,因此不會使用分隔符。 我已經為此使用了之前定義的迭代器。 .join()
操作提供的字符串print()
。 我對我的答案做了一個小小的更正,因為有一個x.rstrip()
情況,如果輸入文件中一行的末尾有空格或制表符,那么如果我使用x.rstrip()
而不是x.rstrip('\\n')
它們將被刪除。 x.rstrip('\\n')
您可以以空字符串開頭,對於從csv文件讀取的每一行,請刪除末尾的換行符,然后將內容添加到空字符串中。
joined = ""
with open(csvfile) as f:
for row in f:
joined = joined + row.replace("\n","")
print(joined)
輸出:
>> AAABBBBCCCDDDDDDDEEEFFFRRRTTTHHHYY
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.