什么是Perl chomp函数的Python等价物,如果它是换行符,它会删除字符串的最后一个字符?
我使用以下代码段来读取python中的文件:
with open ("data.txt", "r") as myfile:
data=myfile.readlines()
Run Code Online (Sandbox Code Playgroud)
输入文件是:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
Run Code Online (Sandbox Code Playgroud)
当我打印数据时,我得到了
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Run Code Online (Sandbox Code Playgroud)
我看到数据的list形式.我如何使它成为字符串?而且我怎么删除"\n","["以及"]"从中字符?
我有一个包含值的.txt文件.
值如下所示:
Value1
Value2
Value3
Value4
Run Code Online (Sandbox Code Playgroud)
我的目标是将值放在列表中.当我这样做时,列表看起来像这样:
['Value1\n', 'Value2\n', ...]
该\n是没有必要的.
这是我的代码:
t = open('filename.txt', 'r+w')
contents = t.readline()
alist = []
for i in contents:
alist.append(i)
Run Code Online (Sandbox Code Playgroud) 我正在尝试确定在Python中读取换行符分隔文件时处理删除换行符的最佳方法.
我想出的是以下代码,包括要测试的一次性代码.
import os
def getfile(filename,results):
f = open(filename)
filecontents = f.readlines()
for line in filecontents:
foo = line.strip('\n')
results.append(foo)
return results
blahblah = []
getfile('/tmp/foo',blahblah)
for x in blahblah:
print x
Run Code Online (Sandbox Code Playgroud)
建议?
我有一个简单的程序,它带有一个ID号,并为匹配ID的人打印信息.信息存储在.dat文件中,每行一个ID号.
问题是我的程序也在从文件中读取换行符\n.我尝试了'name'.split()方法,但这似乎不适用于列表.
我的节目:
from time import localtime, strftime
files = open("grades.dat")
request = open("requests.dat", "w")
lists = files.readlines()
grades = []
for i in range(len(lists)):
grades.append(lists[i].split(","))
cont = "y"
while cont == "y" or cont == "Y":
answer = raw_input("Please enter the Student I.D. of whom you are looking: ")
for i in range(len(grades)):
if answer == grades[i][0]:
print grades[i][1] + ", " + grades[i][2] + (" "*6) + grades[i][0] + (" "*6) + grades[i][3]
time = strftime("%a, %b %d …Run Code Online (Sandbox Code Playgroud) 使用python从文本文件中读取行时,通常需要在处理文本之前截断行尾字符,如下例所示:
f = open("myFile.txt", "r")
for line in f:
line = line[:-1]
# do something with line
Run Code Online (Sandbox Code Playgroud)
是否有一种优雅的方式或习惯用于检索没有终结字符的文本行?
我即将编写一个能够读取txt文件的python脚本,但是使用readline()总会有\n输出.如何从变量中删除它?
a = open("file", "r")
b = a.readline()
a.close()
Run Code Online (Sandbox Code Playgroud) 我的文件是"xml.txt",内容如下:
books.xml
news.xml
mix.xml
Run Code Online (Sandbox Code Playgroud)
如果我使用readline()函数,它会在所有文件的名称后附加"\n",这是一个错误,因为我想打开xml.txt中包含的文件.我写了这个:
fo = open("xml.tx","r")
for i in range(count.__len__()): #here count is one of may arrays that i'm using
file = fo.readline()
find_root(file) # here find_root is my own created function not displayed here
Run Code Online (Sandbox Code Playgroud)
运行此代码时遇到错误:
IOError: [Errno 2] No such file or directory: 'books.xml\n'
Run Code Online (Sandbox Code Playgroud) 我正在从包含一个[*]字/行的文件中读取行,例如:
dog
cat
person
tree
Run Code Online (Sandbox Code Playgroud)
每个单词还包含换行符\n.我想将它们读入列表并丢弃换行符.我设计的方法是阅读,readlines()然后将列表处理到strip()换行符:
with open('words.txt') as f:
words = f.readlines()
for index, word in enumerate(words):
words[index] = word.strip()
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我不禁想到有一种更有效的方法来执行此操作,在读取过程中去除换行符.但我找不到办法.是否有更高效的东西(同时也考虑可读性等)
[*]更新:我应该提到某些行可能包含多个单词,但在这些情况下,行中的许多单词应该包含在单个列表项中.到目前为止,这两个答案都处理这个问题(就像我自己的代码一样),但我想提一下.
我在将文件读入列表时遇到问题,当我这样做时,只会从整个文件创建一个项目,而不是将每个元素读入自己的字段.我正在使用\n剥离的东西,但我不能让它正常工作.
temp = open('drugs')
drugs = [temp.read().strip("\n")]
temp.close
Run Code Online (Sandbox Code Playgroud)
结果:
['40 Stimpak\n53 Mentats\n87 Buffout\n109 Rad-X\n125 Booze\n260 Jet Antidote\n311 Roentgen Rum\n424 Monument Chunk\n480 Bonus +1 Agility\n525 Hypo \n48 RadAway\n71 Fruit\n103 Iguana-on-a-stick\n110 Psycho\n144 Super Stimpak\n273 Healing Powder\n334 Poison\n469 Rot Gut\n481 Bonus +1 Intelligence \n49 Antidote\n81 Iguana-on-a-stick\n106 Nuka-Cola\n124 Beer\n259 Jet\n310 Gamma Gulp Beer\n378 Cookie\n473 Mutated Toe\n482 Bonus +1 Strength ']
drugs.strip('\n')
Traceback (most recent call last):
File "seek", line 18, in <module>
print drugs.strip('\n')
AttributeError: 'list' object has no attribute 'strip'
Run Code Online (Sandbox Code Playgroud) 我已经阅读了file.readlines逐行读取整个文件并将其存储在列表中.如果我有这样的文件 -
Sentence 1
Sentence 2
Sentence 3
Run Code Online (Sandbox Code Playgroud)
我用它readlines来打印每个句子 -
file = open("test.txt")
for i in file.readlines():
print i
Run Code Online (Sandbox Code Playgroud)
输出是
Sentence 1
Sentence 2
Sentence 3
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么我在每个句子之间得到额外的界限,我怎么能摆脱它呢?如果这个问题非常愚蠢,请原谅我,但我对Python不是很有经验.
UPDATE
我发现使用i.strip也删除了多余的线,为什么会发生这种情况?据我所知,split删除字符串末尾和字符串开头的空格.
所以我决定使用这段代码:
CaseList = []
f_Case = open("C:/Users/Luke Roberts/Desktop/Lists/CaseList.txt", "r")
for line in f_Case:
CaseList.append(line)
print(CaseList)
Run Code Online (Sandbox Code Playgroud)
但是,当我打印列表时,它出现为:
['Case 1\n', 'Case 2\n', 'Case 3\n', 'Case 4\n', 'Case 5']
Run Code Online (Sandbox Code Playgroud)
有没有办法将它添加到列表中而没有'\n'?如果没有,有没有办法从每个字符串中删除'\n'?
任何和所有的帮助表示赞赏!干杯