[英]Removing newline characters in a txt files
我正在做歐拉問題,並在問題8處出現 ,想將這個巨大的1000位數字復制到numberToProblem8.txt文件中,然后將其讀入我的腳本中,但是我找不到從其中刪除換行符的好方法它。 使用該代碼:
hugeNumberAsStr = ''
with open('numberToProblem8.txt') as f:
for line in f:
aSingleLine = line.strip()
hugeNumberAsStr.join(aSingleLine)
print(hugeNumberAsStr)
我使用print()僅檢查它是否正常工作,但沒有。 它不會打印出任何東西。 我的代碼有什么問題? 我使用strip()刪除了所有垃圾,然后使用join()將已清理的行添加到hugeNumberAsStr(需要使用字符串來連接這些行,以后再使用int()),並對所有行重復該操作。 這是帶有數字的.txt文件。
您需要執行hugeNumberAsStr += aSingleLine
而不是hugeNumberAsStr.join(..)
str.join()
聯接傳遞的迭代器,並返回由str
聯接的字符串值。 它不會像您所想的那樣更新hugeNumberAsStr
的值。 您想創建一個刪除了\\n
的新字符串。 您需要將這些值存儲在新字符串中。 為此,您需要將內容附加到字符串
怎么樣呢?
hugeNumberAsStr = open('numberToProblem8.txt').read()
hugeNumberAsStr = hugeNumberAsStr.strip().replace('\n', '')
甚至:
hugeNumberAsStr = ''.join([d for d in hugeNumberAsStr if d.isdigit()])
我可以將其簡化為以下內容,以從該文件中獲取編號:
>>> int(open('numberToProblem8.txt').read().replace('\n',''))
731671765313306249192251196744265747423553491949349698352031277450632623957831801698480186947885184385861560789112949495459501737958331952853208805511125406987471585238630507156932909632952274430435576689664895044524452316173185640309871112172238311362229893423380308135336276614282806444486645238749303589072962904915604407723907138105158593079608667017242712188399879790879227492190169972088809377665727333001053367881220235421809751254540594752243525849077116705560136048395864467063244157221553975369781797784617406495514929086256932197846862248283972241375657056057490261407972968652414535100474821663704844031998900088952434506585412275886668811642717147992444292823086346567481391912316282458617866458359124566529476545682848912883142607690042242190226710556263211111093705442175069416589604080719840385096245544
字符串的join方法只需要一個可迭代的對象並將每個部分連接在一起。 然后,它返回結果連接字符串。 如help(str.join)中所述:
join(...)S.join(可迭代)-> str
Return a string which is the concatenation of the strings in the
iterable. The separator between elements is S.
因此,join方法實際上並不能滿足您的要求。 串聯線應更像:
hugeNumberAsString += aSingleLine
甚至:
hugeNumberAsString += line.strip()
這消除了執行剝離的多余代碼行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.