Pythonでは、
temp = open(filename,'r').readlines()
結果は、各要素がファイル内の行であるリストになります。それは少しばかげていますが、それでも:readlines()
各要素に改行文字を書き込みます。これは私が起こりたくないことです。
どうすればそれを回避できますか?
Pythonでは、
temp = open(filename,'r').readlines()
結果は、各要素がファイル内の行であるリストになります。それは少しばかげていますが、それでも:readlines()
各要素に改行文字を書き込みます。これは私が起こりたくないことです。
どうすればそれを回避できますか?
次を使用して、ファイル全体と分割行を読み取ることができますstr.splitlines
。
temp = file.read().splitlines()
または、改行を手動で削除することもできます。
temp = [line[:-1] for line in file]
注:この最後の解決策は、ファイルが改行で終わっている場合にのみ機能します。そうでない場合、最後の行は文字を失います。
この仮定はほとんどの場合に当てはまります(特にテキストエディタで作成されたファイルの場合、とにかく終了改行が追加されることがよくあります)。
これを避けたい場合は、ファイルの最後に改行を追加できます。
with open(the_file, 'r+') as f:
f.seek(-1, 2) # go at the end of the file
if f.read(1) != '\n':
# add missing newline if not already present
f.write('\n')
f.flush()
f.seek(0)
lines = [line[:-1] for line in f]
strip
または、代わりに改行を使用する方が簡単です。
[line.rstrip('\n') for line in file]
または、かなり読めないものの、次のようになります。
[line[:-(line[-1] == '\n') or len(line)+1] for line in file]
これは、の戻り値がor
ブール値ではなく、trueまたはfalseと評価されたオブジェクトであるという事実を利用しています。
このreadlines
方法は、実際には次と同等です。
def readlines(self):
lines = []
for line in iter(self.readline, ''):
lines.append(line)
return lines
# or equivalently
def readlines(self):
lines = []
while True:
line = self.readline()
if not line:
break
lines.append(line)
return lines
readline()
改行を保持するので、それもreadlines()
保持します。
注:メソッドの対称性readlines()
のために、終了改行は追加されないため、 inの正確なコピーが生成されます。writelines()
f2.writelines(f.readlines())
f
f2
temp = open(filename,'r').read().splitlines()
一度に1行ずつファイルを読み取ります。。を使用して文字列の末尾から不要な文字を削除しstr.rstrip(chars)
ます。
with open(filename, 'r') as fileobj:
for row in fileobj:
print(row.rstrip('\n'))
str.strip([chars])
およびも参照してくださいstr.lstrip([chars])
。
これが最良の選択肢だと思います。
temp = [line.strip() for line in file.readlines()]
temp = open(filename,'r').read().splitlines()
これを試して:
u=open("url.txt","r")
url=u.read().replace('\n','')
print(url)
/n
末尾の行末( )文字と空のリスト値( )を取り除くには、次のことを''
試してください。
f = open(path_sample, "r")
lines = [line for line in f.readlines() if line.strip() != '']
このスクリプトは、ファイルから行を取得し、 file2の最後に改行がないすべての行を保存します。
file = open("temp.txt", "+r")
file2 = open("res.txt", "+w")
for line in file:
file2.writelines(f"{line.splitlines()[0]},0\n")
file2.close()
行を見ると、この値はdata \ nなので、splitlines()
配列として作成し、[0]で単語データのみを選択します
my_file = open("first_file.txt", "r")
for line in my_file.readlines():
if line[-1:] == "\n":
print(line[:-1])
else:
print(line)
my_file.close()
import csv
with open(filename) as f:
csvreader = csv.reader(f)
for line in csvreader:
print(line[0])