想了解如何从python中的文件中读取由自定义分隔符终止的记录?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python分段读取文件的相关问题,此外,我们还将为您介绍关于Python:使
想了解如何从python中的文件中读取由自定义分隔符终止的记录?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python分段读取文件的相关问题,此外,我们还将为您介绍关于Python:使用自定义分隔符格式化字符串、不带分隔符的文本文件中的数据通过python进入列表、从Python中的.dat文件中读取特定列、从Python中的巨大CSV文件中读取随机行的新知识。
本文目录一览:- 如何从python中的文件中读取由自定义分隔符终止的记录?(python分段读取文件)
- Python:使用自定义分隔符格式化字符串
- 不带分隔符的文本文件中的数据通过python进入列表
- 从Python中的.dat文件中读取特定列
- 从Python中的巨大CSV文件中读取随机行
如何从python中的文件中读取由自定义分隔符终止的记录?(python分段读取文件)
我想for line in
file
在python中做的一种方式,其中将行尾重新定义为我想要的任何字符串。换句话说,我想从文件而不是行中读取记录。我希望它与阅读台词一样快捷方便。
这是等效于设置perl的$/
输入记录分隔符或Scanner
在java中使用的python 。这不一定必须使用for line in
file
(特别是,迭代器可能不是文件对象)。只是一种等效方法,可以避免将太多数据读入内存。
另请参阅: 添加对使用任意分隔符读取记录的支持,并将其添加到标准IO堆栈中
Python:使用自定义分隔符格式化字符串
我必须使用字典中的值格式化字符串,但是该字符串已经包含大括号。例如:
raw_string = """
DATABASE = {
'name': '{DB_NAME}'
}
"""
但是,当然会raw_string.format(my_dictionary)
导致KeyErro。
有没有办法使用不同的符号来使用.format()
?
这不是我如何在python字符串中打印文字大括号字符并在其上使用.format的重复项?因为我需要保持大括号不变,并为使用不同的定界符.format
。
不带分隔符的文本文件中的数据通过python进入列表
用特殊符号(例如“ _”)替换名称(“ Unities States”)中的空格。 然后,尝试用唯一的符号(例如“#”)替换数据中的空格,该符号不会出现在数据中。进一步将其用作分隔符。
,应该注意国家名称。 这是示例代码:
a = """1 United States $19,485,394,000,000 $19.485 trillion 2.27% 325,084,756 $59,939 24.08% 2 China $12,237,700,479,375 $12.238 trillion 6.90% 1,421,021,791 $8,612 15.12% 3 Japan $4,872,415,104,315 $4.872 trillion 1.71% 127,502,725 $38,214 6.02%"""
def get_splited(a):
b = a.split()
c = []
# join words after split
ind = 0
cache_list = []
while ind < len(b):
if b[ind].isalpha():
cache_list.append(b[ind])
else:
if cache_list:
c.append(' '.join(cache_list))
cache_list = []
c.append(b[ind])
ind += 1
d = [c[i:i+9] for i in range(0,len(c),9)]
return d
print(get_splited(a))
您可以参考以下链接:https://onlinegdb.com/rJsPgUQHw
,问题是由于数据中缺少新行。如果我们必须处理这些数据,则解决方案是一个肮脏的解决方案。
fh = open('data.txt')
content = fh.read()
content = content.split()
data = []
newline = []
counter = 1
i=0
while i < len(content):
counter+=1
newline.append(content[i])
i+=1
country=''
while '$' not in content[i]:
country += content[i] + ' '
i += 1
newline.append(country.rstrip())
while True:
try:
next = content[i+1]
except:
next=''
if next in ['trillion','billion','million']:
text = content[i]+' '+content[i+1]
i+=2
else:
text = content[i]
i+=1
newline.append(text)
try:
if content[i] == str(counter):
data.append(newline)
newline=[]
break
except:
data.append(newline)
break
print(data)
从Python中的.dat文件中读取特定列
7522126 0 0 0 0 0 0 -419.795 -186.24 1852.86 0.134695 -0.995462 -2.53153 7825452 0 0 0 0 0 0 -419.795 -186.24 1852.86 0.134695 -0.995462 -2.53153 8073799 0 0 0 0 0 0 -345.551 -140.711 1819.04 -0.0220266 -0.85992 -2.29598
每个值都由一个选项卡分隔.
我想为每一行提取例如第8列的值,并将其保存到数组中.所以输出应该是这样的:
-419.795 -419.795 -345.551
最简单的方法是什么?
解决方法
with open(''results.dat'') as f: [line.split()[7] for line in f]
或定义一个函数,
get_col = lambda col: (line.split(''\t'')[col-1] for line in open(''results.dat''))
现在使用所需的列号调用该函数. get_col(8)给出第8列数据.要将其存储在数组中,
array.array(''d'',map(float,get_col(8)))
从Python中的巨大CSV文件中读取随机行
我有一个很大的CSV文件(15 Gb),我需要从中读取大约一百万行。据我所见-并实现-Python中的CSV实用程序仅允许在文件中顺序迭代。
将所有文件读入内存以使用一些随机选择非常耗费内存,并且遍历所有文件并丢弃一些值并选择其他值非常耗时,因此, 无论如何 ,
是否有必要从CSV文件中选择一些随机行,只读那行?
我尝试没有成功:
import csv
with open('linear_e_LAN2A_F_0_435keV.csv') as file:
reader = csv.reader(file)
print reader[someRandomInteger]
CSV文件示例:
331.093,329.735
251.188,249.994
374.468,373.782
295.643,295.159
83.9058,0
380.709,116.221
352.238,351.891
183.809,182.615
257.277,201.302
61.4598,40.7106
关于如何从python中的文件中读取由自定义分隔符终止的记录?和python分段读取文件的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Python:使用自定义分隔符格式化字符串、不带分隔符的文本文件中的数据通过python进入列表、从Python中的.dat文件中读取特定列、从Python中的巨大CSV文件中读取随机行的相关知识,请在本站寻找。
本文标签: